diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
index 86c75e3..04e22d0 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.core.page.PageInfoBT;
import com.casic.missiles.model.form.IdForms;
import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.BoxIdForms;
import com.casic.missiles.modular.device.dto.CommandDTO;
import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.service.IBoxDeviceService;
@@ -90,7 +91,12 @@
boxDeviceService.updateById(boxDevice);
return ResponseDataDTO.success();
}
-
+ @ApiOperation(value = "修改接口")
+ @PostMapping(value = "/batch/update/path")
+ public ResponseDataDTO updatePath(@RequestBody BoxIdForms ids) {
+ boxDeviceService.updatePath(ids);
+ return ResponseDataDTO.success();
+ }
@ApiOperation(value = "删除接口")
@GetMapping(value = "/delete")
public ResponseDataDTO delete(String id) {
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
index 86c75e3..04e22d0 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.core.page.PageInfoBT;
import com.casic.missiles.model.form.IdForms;
import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.BoxIdForms;
import com.casic.missiles.modular.device.dto.CommandDTO;
import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.service.IBoxDeviceService;
@@ -90,7 +91,12 @@
boxDeviceService.updateById(boxDevice);
return ResponseDataDTO.success();
}
-
+ @ApiOperation(value = "修改接口")
+ @PostMapping(value = "/batch/update/path")
+ public ResponseDataDTO updatePath(@RequestBody BoxIdForms ids) {
+ boxDeviceService.updatePath(ids);
+ return ResponseDataDTO.success();
+ }
@ApiOperation(value = "删除接口")
@GetMapping(value = "/delete")
public ResponseDataDTO delete(String id) {
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
index beadcd2..b4a999e 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.common.annotion.BussinessLog;
@@ -9,11 +10,9 @@
import com.casic.missiles.modular.auth.dto.DeviceLoginForm;
import com.casic.missiles.modular.auth.util.ICacheUtil;
import com.casic.missiles.modular.auth.util.JwtUtil;
+import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.model.BoxDeviceRelation;
-import com.casic.missiles.modular.device.service.IBoxDeviceRelationService;
-import com.casic.missiles.modular.device.service.IDeviceAuthService;
-import com.casic.missiles.modular.device.service.IDeviceModelRelationService;
-import com.casic.missiles.modular.device.service.IDeviceSceneRelationService;
+import com.casic.missiles.modular.device.service.*;
import com.casic.missiles.modular.device.vo.BoxDeviceRelationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +24,7 @@
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
@Api(tags = "设备同步接口")
@RestController
@@ -33,14 +33,17 @@
private final IDeviceModelRelationService deviceModelRelationService;
private final IDeviceSceneRelationService sceneRelationService;
+ private final IBoxDeviceService boxDeviceService;
private final IBoxDeviceRelationService boxDeviceRelationService;
private final IDeviceAuthService deviceAuthService;
+
@Value("${casic.file.uploadPath:D://tmp//}")
private String filePath;
- public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
+ public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceService boxDeviceService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
this.deviceModelRelationService = deviceModelRelationService;
this.sceneRelationService = sceneRelationService;
+ this.boxDeviceService = boxDeviceService;
this.boxDeviceRelationService = boxDeviceRelationService;
this.deviceAuthService = deviceAuthService;
}
@@ -74,19 +77,50 @@
* @param code
* @return
*/
+ @GetMapping("/info")
+ @ResponseBody
+ public ResponseDataDTO> heart(String code) {
+ DeviceLoginForm deviceLoginForm = validToken();
+
+ if (deviceLoginForm == null) {
+ return ResponseDataDTO.error("未获取到有效登录token");
+ }
+ if (StrUtil.isEmpty(code)) {
+ return ResponseDataDTO.error("设备编码不能为空");
+ }
+
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(BoxDevice::getCode, code);
+ BoxDevice boxDevice = boxDeviceService.getOne(query);
+ clearBoxDevice(boxDevice);
+ return ResponseDataDTO.success(boxDevice);
+ }
+
+ private void clearBoxDevice(BoxDevice boxDevice) {
+ boxDevice.setClientPrivateKey(null);
+ boxDevice.setClientPublicKey(null);
+ boxDevice.setServerPrivateKey(null);
+ boxDevice.setServerPublicKey(null);
+ }
+
+ /**
+ * 心跳接收
+ *
+ * @param code
+ * @return
+ */
@GetMapping("/heart")
@ResponseBody
- public ResponseDataDTO heart(String code) {
+ public ResponseDataDTO heart(String code, String version) {
DeviceLoginForm deviceLoginForm = validToken();
if (deviceLoginForm == null) {
return ResponseDataDTO.error("未获取到有效登录token");
}
- deviceAuthService.reloadStatus(deviceLoginForm.getCode());
+ deviceAuthService.reloadStatus(deviceLoginForm.getCode(), version);
return ResponseDataDTO.success();
}
/**
- *
* @param path
* @return
*/
@@ -153,4 +187,4 @@
return null;
}
-}
+}
\ No newline at end of file
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
index 86c75e3..04e22d0 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.core.page.PageInfoBT;
import com.casic.missiles.model.form.IdForms;
import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.BoxIdForms;
import com.casic.missiles.modular.device.dto.CommandDTO;
import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.service.IBoxDeviceService;
@@ -90,7 +91,12 @@
boxDeviceService.updateById(boxDevice);
return ResponseDataDTO.success();
}
-
+ @ApiOperation(value = "修改接口")
+ @PostMapping(value = "/batch/update/path")
+ public ResponseDataDTO updatePath(@RequestBody BoxIdForms ids) {
+ boxDeviceService.updatePath(ids);
+ return ResponseDataDTO.success();
+ }
@ApiOperation(value = "删除接口")
@GetMapping(value = "/delete")
public ResponseDataDTO delete(String id) {
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
index beadcd2..b4a999e 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.common.annotion.BussinessLog;
@@ -9,11 +10,9 @@
import com.casic.missiles.modular.auth.dto.DeviceLoginForm;
import com.casic.missiles.modular.auth.util.ICacheUtil;
import com.casic.missiles.modular.auth.util.JwtUtil;
+import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.model.BoxDeviceRelation;
-import com.casic.missiles.modular.device.service.IBoxDeviceRelationService;
-import com.casic.missiles.modular.device.service.IDeviceAuthService;
-import com.casic.missiles.modular.device.service.IDeviceModelRelationService;
-import com.casic.missiles.modular.device.service.IDeviceSceneRelationService;
+import com.casic.missiles.modular.device.service.*;
import com.casic.missiles.modular.device.vo.BoxDeviceRelationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +24,7 @@
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
@Api(tags = "设备同步接口")
@RestController
@@ -33,14 +33,17 @@
private final IDeviceModelRelationService deviceModelRelationService;
private final IDeviceSceneRelationService sceneRelationService;
+ private final IBoxDeviceService boxDeviceService;
private final IBoxDeviceRelationService boxDeviceRelationService;
private final IDeviceAuthService deviceAuthService;
+
@Value("${casic.file.uploadPath:D://tmp//}")
private String filePath;
- public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
+ public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceService boxDeviceService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
this.deviceModelRelationService = deviceModelRelationService;
this.sceneRelationService = sceneRelationService;
+ this.boxDeviceService = boxDeviceService;
this.boxDeviceRelationService = boxDeviceRelationService;
this.deviceAuthService = deviceAuthService;
}
@@ -74,19 +77,50 @@
* @param code
* @return
*/
+ @GetMapping("/info")
+ @ResponseBody
+ public ResponseDataDTO> heart(String code) {
+ DeviceLoginForm deviceLoginForm = validToken();
+
+ if (deviceLoginForm == null) {
+ return ResponseDataDTO.error("未获取到有效登录token");
+ }
+ if (StrUtil.isEmpty(code)) {
+ return ResponseDataDTO.error("设备编码不能为空");
+ }
+
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(BoxDevice::getCode, code);
+ BoxDevice boxDevice = boxDeviceService.getOne(query);
+ clearBoxDevice(boxDevice);
+ return ResponseDataDTO.success(boxDevice);
+ }
+
+ private void clearBoxDevice(BoxDevice boxDevice) {
+ boxDevice.setClientPrivateKey(null);
+ boxDevice.setClientPublicKey(null);
+ boxDevice.setServerPrivateKey(null);
+ boxDevice.setServerPublicKey(null);
+ }
+
+ /**
+ * 心跳接收
+ *
+ * @param code
+ * @return
+ */
@GetMapping("/heart")
@ResponseBody
- public ResponseDataDTO heart(String code) {
+ public ResponseDataDTO heart(String code, String version) {
DeviceLoginForm deviceLoginForm = validToken();
if (deviceLoginForm == null) {
return ResponseDataDTO.error("未获取到有效登录token");
}
- deviceAuthService.reloadStatus(deviceLoginForm.getCode());
+ deviceAuthService.reloadStatus(deviceLoginForm.getCode(), version);
return ResponseDataDTO.success();
}
/**
- *
* @param path
* @return
*/
@@ -153,4 +187,4 @@
return null;
}
-}
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
new file mode 100644
index 0000000..4a48309
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.controller;
+
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FileVersionDTO;
+import com.casic.missiles.modular.device.service.ISafeCasicFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+@Api(tags = "安全生产附件")
+@RestController
+@RequestMapping({"/safe/file"})
+public class SafeFileManagerController {
+ @Resource
+ private ISafeCasicFileService casicFileService;
+
+ @ApiOperation(value = "盒子服务附件上传")
+ @PostMapping({"/upload"})
+ @ResponseBody
+ public Object upload(@RequestParam("file") MultipartFile file) throws IOException {
+ String fileId = this.casicFileService.saveFile(file);
+ return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空");
+ }
+
+ @ApiOperation(value = "盒子服务版本查询")
+ @GetMapping({"/version"})
+ @ResponseBody
+ public ResponseDataDTO> version() throws IOException {
+ List listFiles = this.casicFileService.listFiles();
+ return ResponseDataDTO.success(listFiles);
+ }
+}
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
index 86c75e3..04e22d0 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.core.page.PageInfoBT;
import com.casic.missiles.model.form.IdForms;
import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.BoxIdForms;
import com.casic.missiles.modular.device.dto.CommandDTO;
import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.service.IBoxDeviceService;
@@ -90,7 +91,12 @@
boxDeviceService.updateById(boxDevice);
return ResponseDataDTO.success();
}
-
+ @ApiOperation(value = "修改接口")
+ @PostMapping(value = "/batch/update/path")
+ public ResponseDataDTO updatePath(@RequestBody BoxIdForms ids) {
+ boxDeviceService.updatePath(ids);
+ return ResponseDataDTO.success();
+ }
@ApiOperation(value = "删除接口")
@GetMapping(value = "/delete")
public ResponseDataDTO delete(String id) {
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
index beadcd2..b4a999e 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.common.annotion.BussinessLog;
@@ -9,11 +10,9 @@
import com.casic.missiles.modular.auth.dto.DeviceLoginForm;
import com.casic.missiles.modular.auth.util.ICacheUtil;
import com.casic.missiles.modular.auth.util.JwtUtil;
+import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.model.BoxDeviceRelation;
-import com.casic.missiles.modular.device.service.IBoxDeviceRelationService;
-import com.casic.missiles.modular.device.service.IDeviceAuthService;
-import com.casic.missiles.modular.device.service.IDeviceModelRelationService;
-import com.casic.missiles.modular.device.service.IDeviceSceneRelationService;
+import com.casic.missiles.modular.device.service.*;
import com.casic.missiles.modular.device.vo.BoxDeviceRelationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +24,7 @@
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
@Api(tags = "设备同步接口")
@RestController
@@ -33,14 +33,17 @@
private final IDeviceModelRelationService deviceModelRelationService;
private final IDeviceSceneRelationService sceneRelationService;
+ private final IBoxDeviceService boxDeviceService;
private final IBoxDeviceRelationService boxDeviceRelationService;
private final IDeviceAuthService deviceAuthService;
+
@Value("${casic.file.uploadPath:D://tmp//}")
private String filePath;
- public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
+ public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceService boxDeviceService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
this.deviceModelRelationService = deviceModelRelationService;
this.sceneRelationService = sceneRelationService;
+ this.boxDeviceService = boxDeviceService;
this.boxDeviceRelationService = boxDeviceRelationService;
this.deviceAuthService = deviceAuthService;
}
@@ -74,19 +77,50 @@
* @param code
* @return
*/
+ @GetMapping("/info")
+ @ResponseBody
+ public ResponseDataDTO> heart(String code) {
+ DeviceLoginForm deviceLoginForm = validToken();
+
+ if (deviceLoginForm == null) {
+ return ResponseDataDTO.error("未获取到有效登录token");
+ }
+ if (StrUtil.isEmpty(code)) {
+ return ResponseDataDTO.error("设备编码不能为空");
+ }
+
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(BoxDevice::getCode, code);
+ BoxDevice boxDevice = boxDeviceService.getOne(query);
+ clearBoxDevice(boxDevice);
+ return ResponseDataDTO.success(boxDevice);
+ }
+
+ private void clearBoxDevice(BoxDevice boxDevice) {
+ boxDevice.setClientPrivateKey(null);
+ boxDevice.setClientPublicKey(null);
+ boxDevice.setServerPrivateKey(null);
+ boxDevice.setServerPublicKey(null);
+ }
+
+ /**
+ * 心跳接收
+ *
+ * @param code
+ * @return
+ */
@GetMapping("/heart")
@ResponseBody
- public ResponseDataDTO heart(String code) {
+ public ResponseDataDTO heart(String code, String version) {
DeviceLoginForm deviceLoginForm = validToken();
if (deviceLoginForm == null) {
return ResponseDataDTO.error("未获取到有效登录token");
}
- deviceAuthService.reloadStatus(deviceLoginForm.getCode());
+ deviceAuthService.reloadStatus(deviceLoginForm.getCode(), version);
return ResponseDataDTO.success();
}
/**
- *
* @param path
* @return
*/
@@ -153,4 +187,4 @@
return null;
}
-}
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
new file mode 100644
index 0000000..4a48309
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.controller;
+
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FileVersionDTO;
+import com.casic.missiles.modular.device.service.ISafeCasicFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+@Api(tags = "安全生产附件")
+@RestController
+@RequestMapping({"/safe/file"})
+public class SafeFileManagerController {
+ @Resource
+ private ISafeCasicFileService casicFileService;
+
+ @ApiOperation(value = "盒子服务附件上传")
+ @PostMapping({"/upload"})
+ @ResponseBody
+ public Object upload(@RequestParam("file") MultipartFile file) throws IOException {
+ String fileId = this.casicFileService.saveFile(file);
+ return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空");
+ }
+
+ @ApiOperation(value = "盒子服务版本查询")
+ @GetMapping({"/version"})
+ @ResponseBody
+ public ResponseDataDTO> version() throws IOException {
+ List listFiles = this.casicFileService.listFiles();
+ return ResponseDataDTO.success(listFiles);
+ }
+}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java
deleted file mode 100644
index c067f09..0000000
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package com.casic.missiles.modular.device.controller;
-
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.casic.missiles.core.application.service.AbstractAuthService;
-import com.casic.missiles.core.base.controller.BaseController;
-import com.casic.missiles.core.common.annotion.BussinessLog;
-import com.casic.missiles.core.datascope.DataScope;
-import com.casic.missiles.core.datascope.ScopeEnums;
-import com.casic.missiles.core.page.PageFactory;
-import com.casic.missiles.core.page.PageInfoBT;
-import com.casic.missiles.model.response.dto.ResponseDataDTO;
-import com.casic.missiles.modular.device.dto.FocusVideoDTO;
-import com.casic.missiles.modular.device.dto.RiskPointDTO;
-import com.casic.missiles.modular.device.dto.analysis.*;
-import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
-import com.casic.missiles.modular.device.model.AlarmRecord;
-import com.casic.missiles.modular.device.model.BusDeviceInfo;
-import com.casic.missiles.modular.device.model.RiskPointInfo;
-import com.casic.missiles.modular.device.service.IAlarmRecordService;
-import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
-import com.casic.missiles.modular.device.service.IRiskPointInfoService;
-import com.casic.missiles.modular.system.service.IConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 模型管理Controller
- *
- * @author lwh
- * @date 2024-11-20
- */
-@Api(tags = "统计相关接口")
-@RestController
-@RequestMapping("/statistics")
-public class StatisticsController extends BaseController {
-
- private final IBusDeviceInfoService busDeviceInfoService;
- private final IConfigService configService;
- private final IRiskPointInfoService riskPointInfoService;
- private final AbstractAuthService authService;
- private final IAlarmRecordService alarmRecordService;
- public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
- this.busDeviceInfoService = busDeviceInfoService;
- this.configService = configService;
- this.riskPointInfoService = riskPointInfoService;
- this.authService = authService;
- this.alarmRecordService = alarmRecordService;
- }
-
- @BussinessLog("隐患分类查询")
- @ApiOperation(value = "隐患分类查询")
- @GetMapping(value = "/dangerCategory")
- public ResponseDataDTO dangerCategory() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
- return ResponseDataDTO.success(dangerCategory);
- }
-
- @BussinessLog("区域隐患分布")
- @ApiOperation(value = "区域隐患分布")
- @GetMapping(value = "/areaDanger")
- public ResponseDataDTO areaDanger() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
- return ResponseDataDTO.success(areaDangerDTO);
- }
-
- @BussinessLog("单位隐患分布")
- @ApiOperation(value = "单位隐患分布")
- @GetMapping(value = "/deptDanger")
- public ResponseDataDTO list() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
- return ResponseDataDTO.success(areaDangerDTO);
- }
-
- @BussinessLog("单位月报警分析")
- @ApiOperation(value = "单位月报警分析")
- @GetMapping(value = "/dept/record")
- public ResponseDataDTO deptRecord() {
- QueryWrapper query = new QueryWrapper();
- //计算近一个月
- Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
- query.ge("a.alarm_time", lastMonth);
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
- query.in("dept_id", scope.getDeptIds());
- }
- List areaNumDTOS = alarmRecordService.deptRecord(query);
- return ResponseDataDTO.success(areaNumDTOS);
- }
-
- @BussinessLog("单位报警时间曲线")
- @ApiOperation(value = "单位报警时间曲线")
- @GetMapping(value = "/dept/alarm/date")
- public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
-
- QueryWrapper query = new QueryWrapper();
-// DataScope scope = authService.getLoginUserDataScope();
-// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
-// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
-// }
- DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
- return ResponseDataDTO.success(videoNumDTO);
- }
-
- @BussinessLog("区域接入视频点位数")
- @ApiOperation(value = "区域接入视频点位数")
- @GetMapping(value = "/videoPoint")
- public ResponseDataDTO videoPoint() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- List areaNumDTOS = riskPointInfoService.videoPoint(query);
- return ResponseDataDTO.success(areaNumDTOS);
- }
-
- @BussinessLog("单位设备接入数")
- @ApiOperation(value = "单位设备接入数")
- @GetMapping(value = "/deptVideoPoint")
- public ResponseDataDTO deptVideoPoint() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
- //统计组名称
- return ResponseDataDTO.success(videoNumDTO);
- }
-
-
-
- @ApiOperation(value = "单位隐患分布分页查询")
- @GetMapping(value = "/deptDangerPage")
- public ResponseDataDTO> deptDangerPage() {
-
- Page page = PageFactory.defaultPage();
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
-
- Page pageDTO = PageFactory.defaultPage();
- pageDTO.setTotal(page.getTotal());
- pageDTO.setRecords(riskPointDTOS);
- return ResponseDataDTO.success(super.packForBT(pageDTO));
- }
-
-
- @BussinessLog("关注对象查询")
- @ApiOperation(value = "关注对象查询")
- @PostMapping(value = "/focus/video")
- public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
- List riskPointDTOS = busDeviceInfoService.focusVideos(query);
- return ResponseDataDTO.success(riskPointDTOS);
- }
-
-}
\ No newline at end of file
diff --git a/casic-meeting/pom.xml b/casic-meeting/pom.xml
new file mode 100644
index 0000000..6a33cb7
--- /dev/null
+++ b/casic-meeting/pom.xml
@@ -0,0 +1,125 @@
+
+
+ 4.0.0
+
+ com.casic
+ casic-production-safety
+ 2.0.0
+ ../pom.xml
+
+
+ casic-meeting
+ 2.0.0
+ jar
+ casic-meeting
+ 视频会议
+
+
+
+
+ com.hikvision.ga
+ artemis-http-client
+ 1.1.3
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+
+
+
+
+
+ com.casic
+ casic-admin-group
+ ${admin.version}
+
+
+ com.casic
+ casic-http
+ ${core.version}
+
+
+ com.casic
+ casic-admin-core
+ ${admin.version}
+ provided
+
+
+ io.springfox
+ springfox-swagger-ui
+
+
+ io.swagger
+ swagger-models
+
+
+
+
+ com.casic
+ casic-core
+ ${core.version}
+ provided
+
+
+
+ com.casic
+ casic-admin-support
+ ${admin.version}
+ provided
+
+
+ com.casic
+ casic-area-starter
+ ${extension.version}
+
+
+ com.casic
+ casic-export-support
+ ${export.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ ${boot.version}
+ provided
+
+
+ com.casic
+ casic-knife4j-boot-starter
+ ${extension.version}
+
+
+
+ com.casic
+ casic-file-support
+ 2.0.0.alpha
+ compile
+
+
+ com.casic
+ casic-server
+ ${pro.version}
+ compile
+
+
+
+
+
+ src/main/java
+
+ **/*.xml
+
+
+
+ ${project.basedir}/lib
+
+ *
+
+
+
+
+
\ No newline at end of file
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
new file mode 100644
index 0000000..fd24b8a
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/controller/UserController.java
@@ -0,0 +1,11 @@
+package com.casic.missiles.modular.meeting.controller;
+
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "会议用户")
+@RestController
+@RequiredArgsConstructor
+public class UserController {
+}
diff --git a/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
new file mode 100644
index 0000000..15a5f53
--- /dev/null
+++ b/casic-meeting/src/main/java/com/casic/missiles/modular/meeting/service/IUserService.java
@@ -0,0 +1,4 @@
+package com.casic.missiles.modular.meeting.service;
+
+public interface IUserService {
+}
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java b/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
deleted file mode 100644
index d7b15b3..0000000
--- a/casic-server/src/main/java/com/casic/missiles/modular/util/Test.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.casic.missiles.modular.util;
-
-public class Test {
- public static void main(String[] args) {
- // 需设置字典类型
- // 危险源等级
- // 危险性质
- // 危险作业等级
- // 事故类型 危险作业工序
-
- //
- System.out.println("");
- }
-}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
new file mode 100644
index 0000000..08017e7
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/AnalysisStatisticsController.java
@@ -0,0 +1,174 @@
+package com.casic.missiles.modular.device.controller;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.application.service.AbstractAuthService;
+import com.casic.missiles.core.base.controller.BaseController;
+import com.casic.missiles.core.common.annotion.BussinessLog;
+import com.casic.missiles.core.datascope.DataScope;
+import com.casic.missiles.core.datascope.ScopeEnums;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FocusVideoDTO;
+import com.casic.missiles.modular.device.dto.RiskPointDTO;
+import com.casic.missiles.modular.device.dto.analysis.*;
+import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
+import com.casic.missiles.modular.device.model.AlarmRecord;
+import com.casic.missiles.modular.device.model.BusDeviceInfo;
+import com.casic.missiles.modular.device.model.RiskPointInfo;
+import com.casic.missiles.modular.device.service.IAlarmRecordService;
+import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
+import com.casic.missiles.modular.device.service.IRiskPointInfoService;
+import com.casic.missiles.modular.system.service.IConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 模型管理Controller
+ *
+ * @author lwh
+ * @date 2024-11-20
+ */
+@Api(tags = "安全生产评估")
+@RestController
+@RequestMapping("/statistics")
+public class AnalysisStatisticsController extends BaseController {
+
+ private final IBusDeviceInfoService busDeviceInfoService;
+ private final IConfigService configService;
+ private final IRiskPointInfoService riskPointInfoService;
+ private final AbstractAuthService authService;
+ private final IAlarmRecordService alarmRecordService;
+ public AnalysisStatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
+ this.busDeviceInfoService = busDeviceInfoService;
+ this.configService = configService;
+ this.riskPointInfoService = riskPointInfoService;
+ this.authService = authService;
+ this.alarmRecordService = alarmRecordService;
+ }
+
+ @BussinessLog("隐患分类查询")
+ @ApiOperation(value = "隐患分类查询")
+ @GetMapping(value = "/dangerCategory")
+ public ResponseDataDTO dangerCategory() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
+ return ResponseDataDTO.success(dangerCategory);
+ }
+
+ @BussinessLog("区域隐患分布")
+ @ApiOperation(value = "区域隐患分布")
+ @GetMapping(value = "/areaDanger")
+ public ResponseDataDTO areaDanger() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位隐患分布")
+ @ApiOperation(value = "单位隐患分布")
+ @GetMapping(value = "/deptDanger")
+ public ResponseDataDTO list() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
+ return ResponseDataDTO.success(areaDangerDTO);
+ }
+
+ @BussinessLog("单位月报警分析")
+ @ApiOperation(value = "单位月报警分析")
+ @GetMapping(value = "/dept/record")
+ public ResponseDataDTO deptRecord() {
+ QueryWrapper query = new QueryWrapper();
+ //计算近一个月
+ Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
+ query.ge("a.alarm_time", lastMonth);
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in("dept_id", scope.getDeptIds());
+ }
+ List areaNumDTOS = alarmRecordService.deptRecord(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位报警时间曲线")
+ @ApiOperation(value = "单位报警时间曲线")
+ @GetMapping(value = "/dept/alarm/date")
+ public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
+
+ QueryWrapper query = new QueryWrapper();
+// DataScope scope = authService.getLoginUserDataScope();
+// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+// }
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+ @BussinessLog("区域接入视频点位数")
+ @ApiOperation(value = "区域接入视频点位数")
+ @GetMapping(value = "/videoPoint")
+ public ResponseDataDTO videoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DataScope scope = authService.getLoginUserDataScope();
+ if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
+ query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
+ }
+ List areaNumDTOS = riskPointInfoService.videoPoint(query);
+ return ResponseDataDTO.success(areaNumDTOS);
+ }
+
+ @BussinessLog("单位设备接入数")
+ @ApiOperation(value = "单位设备接入数")
+ @GetMapping(value = "/deptVideoPoint")
+ public ResponseDataDTO deptVideoPoint() {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
+ //统计组名称
+ return ResponseDataDTO.success(videoNumDTO);
+ }
+
+
+
+ @ApiOperation(value = "单位隐患分布分页查询")
+ @GetMapping(value = "/deptDangerPage")
+ public ResponseDataDTO> deptDangerPage() {
+
+ Page page = PageFactory.defaultPage();
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
+
+ Page pageDTO = PageFactory.defaultPage();
+ pageDTO.setTotal(page.getTotal());
+ pageDTO.setRecords(riskPointDTOS);
+ return ResponseDataDTO.success(super.packForBT(pageDTO));
+ }
+
+
+ @BussinessLog("关注对象查询")
+ @ApiOperation(value = "关注对象查询")
+ @PostMapping(value = "/focus/video")
+ public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
+ LambdaQueryWrapper query = new LambdaQueryWrapper();
+ query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
+ List riskPointDTOS = busDeviceInfoService.focusVideos(query);
+ return ResponseDataDTO.success(riskPointDTOS);
+ }
+
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
index 86c75e3..04e22d0 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/BoxDeviceController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.core.page.PageInfoBT;
import com.casic.missiles.model.form.IdForms;
import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.BoxIdForms;
import com.casic.missiles.modular.device.dto.CommandDTO;
import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.service.IBoxDeviceService;
@@ -90,7 +91,12 @@
boxDeviceService.updateById(boxDevice);
return ResponseDataDTO.success();
}
-
+ @ApiOperation(value = "修改接口")
+ @PostMapping(value = "/batch/update/path")
+ public ResponseDataDTO updatePath(@RequestBody BoxIdForms ids) {
+ boxDeviceService.updatePath(ids);
+ return ResponseDataDTO.success();
+ }
@ApiOperation(value = "删除接口")
@GetMapping(value = "/delete")
public ResponseDataDTO delete(String id) {
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
index beadcd2..b4a999e 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/DeviceSyncController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.casic.missiles.core.base.controller.BaseController;
import com.casic.missiles.core.common.annotion.BussinessLog;
@@ -9,11 +10,9 @@
import com.casic.missiles.modular.auth.dto.DeviceLoginForm;
import com.casic.missiles.modular.auth.util.ICacheUtil;
import com.casic.missiles.modular.auth.util.JwtUtil;
+import com.casic.missiles.modular.device.model.BoxDevice;
import com.casic.missiles.modular.device.model.BoxDeviceRelation;
-import com.casic.missiles.modular.device.service.IBoxDeviceRelationService;
-import com.casic.missiles.modular.device.service.IDeviceAuthService;
-import com.casic.missiles.modular.device.service.IDeviceModelRelationService;
-import com.casic.missiles.modular.device.service.IDeviceSceneRelationService;
+import com.casic.missiles.modular.device.service.*;
import com.casic.missiles.modular.device.vo.BoxDeviceRelationVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -25,6 +24,7 @@
import java.io.FileInputStream;
import java.security.MessageDigest;
import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
@Api(tags = "设备同步接口")
@RestController
@@ -33,14 +33,17 @@
private final IDeviceModelRelationService deviceModelRelationService;
private final IDeviceSceneRelationService sceneRelationService;
+ private final IBoxDeviceService boxDeviceService;
private final IBoxDeviceRelationService boxDeviceRelationService;
private final IDeviceAuthService deviceAuthService;
+
@Value("${casic.file.uploadPath:D://tmp//}")
private String filePath;
- public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
+ public DeviceSyncController(IDeviceModelRelationService deviceModelRelationService, IDeviceSceneRelationService sceneRelationService, IBoxDeviceService boxDeviceService, IBoxDeviceRelationService boxDeviceRelationService, IDeviceAuthService deviceAuthService) {
this.deviceModelRelationService = deviceModelRelationService;
this.sceneRelationService = sceneRelationService;
+ this.boxDeviceService = boxDeviceService;
this.boxDeviceRelationService = boxDeviceRelationService;
this.deviceAuthService = deviceAuthService;
}
@@ -74,19 +77,50 @@
* @param code
* @return
*/
+ @GetMapping("/info")
+ @ResponseBody
+ public ResponseDataDTO> heart(String code) {
+ DeviceLoginForm deviceLoginForm = validToken();
+
+ if (deviceLoginForm == null) {
+ return ResponseDataDTO.error("未获取到有效登录token");
+ }
+ if (StrUtil.isEmpty(code)) {
+ return ResponseDataDTO.error("设备编码不能为空");
+ }
+
+ LambdaQueryWrapper query = new LambdaQueryWrapper<>();
+ query.eq(BoxDevice::getCode, code);
+ BoxDevice boxDevice = boxDeviceService.getOne(query);
+ clearBoxDevice(boxDevice);
+ return ResponseDataDTO.success(boxDevice);
+ }
+
+ private void clearBoxDevice(BoxDevice boxDevice) {
+ boxDevice.setClientPrivateKey(null);
+ boxDevice.setClientPublicKey(null);
+ boxDevice.setServerPrivateKey(null);
+ boxDevice.setServerPublicKey(null);
+ }
+
+ /**
+ * 心跳接收
+ *
+ * @param code
+ * @return
+ */
@GetMapping("/heart")
@ResponseBody
- public ResponseDataDTO heart(String code) {
+ public ResponseDataDTO heart(String code, String version) {
DeviceLoginForm deviceLoginForm = validToken();
if (deviceLoginForm == null) {
return ResponseDataDTO.error("未获取到有效登录token");
}
- deviceAuthService.reloadStatus(deviceLoginForm.getCode());
+ deviceAuthService.reloadStatus(deviceLoginForm.getCode(), version);
return ResponseDataDTO.success();
}
/**
- *
* @param path
* @return
*/
@@ -153,4 +187,4 @@
return null;
}
-}
+}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
new file mode 100644
index 0000000..4a48309
--- /dev/null
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/SafeFileManagerController.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.controller;
+
+import com.casic.missiles.model.response.ResponseData;
+import com.casic.missiles.model.response.dto.ResponseDataDTO;
+import com.casic.missiles.modular.device.dto.FileVersionDTO;
+import com.casic.missiles.modular.device.service.ISafeCasicFileService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+
+@Api(tags = "安全生产附件")
+@RestController
+@RequestMapping({"/safe/file"})
+public class SafeFileManagerController {
+ @Resource
+ private ISafeCasicFileService casicFileService;
+
+ @ApiOperation(value = "盒子服务附件上传")
+ @PostMapping({"/upload"})
+ @ResponseBody
+ public Object upload(@RequestParam("file") MultipartFile file) throws IOException {
+ String fileId = this.casicFileService.saveFile(file);
+ return fileId != null ? ResponseData.success(fileId) : ResponseData.error("文件为空");
+ }
+
+ @ApiOperation(value = "盒子服务版本查询")
+ @GetMapping({"/version"})
+ @ResponseBody
+ public ResponseDataDTO> version() throws IOException {
+ List listFiles = this.casicFileService.listFiles();
+ return ResponseDataDTO.success(listFiles);
+ }
+}
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java
deleted file mode 100644
index c067f09..0000000
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/controller/StatisticsController.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package com.casic.missiles.modular.device.controller;
-
-import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.casic.missiles.core.application.service.AbstractAuthService;
-import com.casic.missiles.core.base.controller.BaseController;
-import com.casic.missiles.core.common.annotion.BussinessLog;
-import com.casic.missiles.core.datascope.DataScope;
-import com.casic.missiles.core.datascope.ScopeEnums;
-import com.casic.missiles.core.page.PageFactory;
-import com.casic.missiles.core.page.PageInfoBT;
-import com.casic.missiles.model.response.dto.ResponseDataDTO;
-import com.casic.missiles.modular.device.dto.FocusVideoDTO;
-import com.casic.missiles.modular.device.dto.RiskPointDTO;
-import com.casic.missiles.modular.device.dto.analysis.*;
-import com.casic.missiles.modular.device.dto.bo.VideoIdsBo;
-import com.casic.missiles.modular.device.model.AlarmRecord;
-import com.casic.missiles.modular.device.model.BusDeviceInfo;
-import com.casic.missiles.modular.device.model.RiskPointInfo;
-import com.casic.missiles.modular.device.service.IAlarmRecordService;
-import com.casic.missiles.modular.device.service.IBusDeviceInfoService;
-import com.casic.missiles.modular.device.service.IRiskPointInfoService;
-import com.casic.missiles.modular.system.service.IConfigService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * 模型管理Controller
- *
- * @author lwh
- * @date 2024-11-20
- */
-@Api(tags = "统计相关接口")
-@RestController
-@RequestMapping("/statistics")
-public class StatisticsController extends BaseController {
-
- private final IBusDeviceInfoService busDeviceInfoService;
- private final IConfigService configService;
- private final IRiskPointInfoService riskPointInfoService;
- private final AbstractAuthService authService;
- private final IAlarmRecordService alarmRecordService;
- public StatisticsController(IBusDeviceInfoService busDeviceInfoService, IConfigService configService, IRiskPointInfoService riskPointInfoService, AbstractAuthService authService, IAlarmRecordService alarmRecordService) {
- this.busDeviceInfoService = busDeviceInfoService;
- this.configService = configService;
- this.riskPointInfoService = riskPointInfoService;
- this.authService = authService;
- this.alarmRecordService = alarmRecordService;
- }
-
- @BussinessLog("隐患分类查询")
- @ApiOperation(value = "隐患分类查询")
- @GetMapping(value = "/dangerCategory")
- public ResponseDataDTO dangerCategory() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DangerCategoryDTO dangerCategory = riskPointInfoService.dangerScopeCategory(query);
- return ResponseDataDTO.success(dangerCategory);
- }
-
- @BussinessLog("区域隐患分布")
- @ApiOperation(value = "区域隐患分布")
- @GetMapping(value = "/areaDanger")
- public ResponseDataDTO areaDanger() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- AreaDangerDTO areaDangerDTO = riskPointInfoService.areaDangerList(query);
- return ResponseDataDTO.success(areaDangerDTO);
- }
-
- @BussinessLog("单位隐患分布")
- @ApiOperation(value = "单位隐患分布")
- @GetMapping(value = "/deptDanger")
- public ResponseDataDTO list() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums().getCode())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- AreaDangerDTO areaDangerDTO = riskPointInfoService.deptDangerDTO(query);
- return ResponseDataDTO.success(areaDangerDTO);
- }
-
- @BussinessLog("单位月报警分析")
- @ApiOperation(value = "单位月报警分析")
- @GetMapping(value = "/dept/record")
- public ResponseDataDTO deptRecord() {
- QueryWrapper query = new QueryWrapper();
- //计算近一个月
- Date lastMonth = DateUtil.offsetMonth(new Date(), -1);
- query.ge("a.alarm_time", lastMonth);
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
- query.in("dept_id", scope.getDeptIds());
- }
- List areaNumDTOS = alarmRecordService.deptRecord(query);
- return ResponseDataDTO.success(areaNumDTOS);
- }
-
- @BussinessLog("单位报警时间曲线")
- @ApiOperation(value = "单位报警时间曲线")
- @GetMapping(value = "/dept/alarm/date")
- public ResponseDataDTO deptAlarmDate(@ApiParam("开始时间(yyyy-MM-dd)") String beginDate,@ApiParam("结束时间(yyyy-MM-dd)") String endDate) {
-
- QueryWrapper query = new QueryWrapper();
-// DataScope scope = authService.getLoginUserDataScope();
-// if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
-// query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
-// }
- DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptAlarmDate(query,beginDate,endDate);
- return ResponseDataDTO.success(videoNumDTO);
- }
-
- @BussinessLog("区域接入视频点位数")
- @ApiOperation(value = "区域接入视频点位数")
- @GetMapping(value = "/videoPoint")
- public ResponseDataDTO videoPoint() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DataScope scope = authService.getLoginUserDataScope();
- if (!ScopeEnums.ALL_TYPE.getCode().equals(scope.getScopeEnums())) {
- query.in(RiskPointInfo::getDeptId, scope.getDeptIds());
- }
- List areaNumDTOS = riskPointInfoService.videoPoint(query);
- return ResponseDataDTO.success(areaNumDTOS);
- }
-
- @BussinessLog("单位设备接入数")
- @ApiOperation(value = "单位设备接入数")
- @GetMapping(value = "/deptVideoPoint")
- public ResponseDataDTO deptVideoPoint() {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- DeptVideoNumDTO videoNumDTO = riskPointInfoService.deptVideoPoint(query);
- //统计组名称
- return ResponseDataDTO.success(videoNumDTO);
- }
-
-
-
- @ApiOperation(value = "单位隐患分布分页查询")
- @GetMapping(value = "/deptDangerPage")
- public ResponseDataDTO> deptDangerPage() {
-
- Page page = PageFactory.defaultPage();
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- List riskPointDTOS = riskPointInfoService.deptDangerDTOPage(query, page);
-
- Page pageDTO = PageFactory.defaultPage();
- pageDTO.setTotal(page.getTotal());
- pageDTO.setRecords(riskPointDTOS);
- return ResponseDataDTO.success(super.packForBT(pageDTO));
- }
-
-
- @BussinessLog("关注对象查询")
- @ApiOperation(value = "关注对象查询")
- @PostMapping(value = "/focus/video")
- public ResponseDataDTO> focusVideos(@RequestBody VideoIdsBo videoIdsBo) {
- LambdaQueryWrapper query = new LambdaQueryWrapper();
- query.in(BusDeviceInfo::getCameraIndexCode, videoIdsBo.getVideoNos());
- List riskPointDTOS = busDeviceInfoService.focusVideos(query);
- return ResponseDataDTO.success(riskPointDTOS);
- }
-
-}
\ No newline at end of file
diff --git a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml
index bd8b8c7..2b251de 100644
--- a/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml
+++ b/casic-warning-analysis/src/main/java/com/casic/missiles/modular/device/dao/mapping/BoxDeviceMapper.xml
@@ -49,11 +49,11 @@
a.device_status
as deviceStatus ,
a.box_name
- as boxName
+ as boxName