page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(iAlarmRuleService.page(page)));
+ }
+}
+
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisCouplingController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisCouplingController.java
new file mode 100644
index 0000000..99a1e3a
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisCouplingController.java
@@ -0,0 +1,22 @@
+package com.casic.missiles.modular.system.config.controller;
+
+
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 耦合关联分析 前端控制器
+ *
+ *
+ * @author zt
+ * @since 2023-07-20
+ */
+@Api(tags = "耦合关联分析管理")
+@RestController
+@RequestMapping("/system/analysisCoupling")
+public class AnalysisCouplingController {
+
+}
+
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisRecognitionController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisRecognitionController.java
new file mode 100644
index 0000000..4f4ff0f
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AnalysisRecognitionController.java
@@ -0,0 +1,75 @@
+package com.casic.missiles.modular.system.config.controller;
+
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.modular.system.dto.AnalysisRecognitionRequest;
+import com.casic.missiles.modular.system.dto.IdDTO;
+import com.casic.missiles.modular.system.dto.IdsDTO;
+import com.casic.missiles.modular.system.entity.AnalysisRecognition;
+import com.casic.missiles.modular.system.enums.BusinessExceptionEnum;
+import com.casic.missiles.modular.system.exception.BusinessException;
+import com.casic.missiles.modular.system.service.IAnalysisRecognitionService;
+import com.casic.missiles.modular.system.util.ReturnUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+/**
+ *
+ * 第三方施工智能识别分析 前端控制器
+ *
+ *
+ * @author zt
+ * @since 2023-07-20
+ */
+@Api(tags = "第三方智能识别管理")
+@RestController
+@RequestMapping("/system/analysisRecognition")
+public class AnalysisRecognitionController extends ExportController {
+
+ @Resource
+ private IAnalysisRecognitionService recognitionService;
+
+ @ApiOperation("识别记录列表")
+ @PostMapping("/listPage")
+ public Object listPage(@RequestBody AnalysisRecognitionRequest request, BindingResult bindingResult) {
+ Assert.isFalse(bindingResult.hasErrors(), () -> {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ });
+ Page page = PageFactory.defaultPage();
+ //toDo:加入其他的筛选条件
+ return ReturnUtil.success(super.packForBT(recognitionService.page(page,new QueryWrapper<>())));
+ }
+
+ @ApiOperation("识别详情")
+ @PostMapping("/detail")
+ public Object detail(@RequestBody IdDTO idDTO) {
+ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ return ReturnUtil.success(recognitionService.detail(idDTO.getId()));
+ }
+
+ @ApiOperation("批量删除")
+ @PostMapping("/batchDelete")
+ public Object batchDelete(@RequestBody IdsDTO idsDTO) {
+ Assert.isFalse(Objects.isNull(idsDTO.getIds()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ return ReturnUtil.success(recognitionService.batchDelete(idsDTO.getIds()));
+ }
+
+}
+
diff --git a/casic-server/pom.xml b/casic-server/pom.xml
index d45d73d..dd16abb 100644
--- a/casic-server/pom.xml
+++ b/casic-server/pom.xml
@@ -83,6 +83,12 @@
0.7.0
+
+ org.locationtech.spatial4j
+ spatial4j
+ 0.8
+
+
diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AlarmRecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AlarmRecordController.java
new file mode 100644
index 0000000..fe018ba
--- /dev/null
+++ b/casic-server/src/main/java/com/casic/missiles/modular/system/config/controller/AlarmRecordController.java
@@ -0,0 +1,142 @@
+package com.casic.missiles.modular.system.config.controller;
+
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.modular.system.dto.*;
+import com.casic.missiles.modular.system.entity.AlarmRecord;
+import com.casic.missiles.modular.system.enums.BusinessExceptionEnum;
+import com.casic.missiles.modular.system.exception.BusinessException;
+import com.casic.missiles.modular.system.service.IAlarmRecordService;
+import com.casic.missiles.modular.system.service.IAnalysisRecognitionService;
+import com.casic.missiles.modular.system.util.FileUtil;
+import com.casic.missiles.modular.system.util.ReturnUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.ExecutionException;
+
+/**
+ *
+ * 告警记录表 前端控制器
+ *
+ *
+ * @author zt
+ * @since 2023-07-19
+ */
+@Api(tags = "告警记录模块")
+@RestController
+@RequestMapping("/alarm")
+public class AlarmRecordController extends ExportController {
+ private static Logger logger = LoggerFactory.getLogger(AlarmRecordController.class);
+
+ @Autowired
+ private IAnalysisRecognitionService iAnalysisRecognitionService;
+ @Resource
+ private IAlarmRecordService iAlarmRecordService;
+ @Value("${casic.file.uploadPath}")
+ private String uploadPath;
+ @Value("${casic.ffmpeg.path}")
+ private String ffmpegPath;
+
+ @ApiOperation("算法接口")
+ @PostMapping("/getrecognitionRecords")
+ @ResponseBody
+ public ReturnDTO> getrecognitionRecords(@RequestBody RecognitionRequest recognitionRequest) throws ExecutionException, InterruptedException {
+
+ return ReturnUtil.success(iAnalysisRecognitionService.saveRecognition(recognitionRequest));
+ }
+
+ @ApiOperation("保存图片")
+ @PostMapping("/savePictures")
+ @ResponseBody
+ public ReturnDTO