Sfoglia il codice sorgente

事件、预案基础功能接口

459242451@qq.com 3 anni fa
parent
commit
81b23088bb
36 ha cambiato i file con 2376 aggiunte e 44 eliminazioni
  1. 5 0
      ruoyi-admin/pom.xml
  2. 128 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java
  3. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentProcessController.java
  4. 101 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/PlanController.java
  5. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/PlanTaskController.java
  6. 2 2
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
  7. 37 40
      ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
  8. 2 2
      ruoyi-generator/src/main/resources/generator.yml
  9. 142 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Incident.java
  10. 59 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/IncidentProcess.java
  11. 82 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Plan.java
  12. 77 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/PlanTask.java
  13. 160 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/IncidentBo.java
  14. 73 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/IncidentProcessBo.java
  15. 88 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanBo.java
  16. 82 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanTaskBo.java
  17. 58 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentProcessVo.java
  18. 152 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java
  19. 61 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanTaskVo.java
  20. 68 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanVo.java
  21. 16 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/IncidentMapper.java
  22. 16 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/IncidentProcessMapper.java
  23. 16 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/PlanMapper.java
  24. 16 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/PlanTaskMapper.java
  25. 56 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IIncidentProcessService.java
  26. 56 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IIncidentService.java
  27. 56 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IPlanService.java
  28. 56 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IPlanTaskService.java
  29. 85 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentProcessServiceImpl.java
  30. 137 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentServiceImpl.java
  31. 87 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanServiceImpl.java
  32. 86 0
      ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanTaskServiceImpl.java
  33. 33 0
      ruoyi-zhdd/src/main/resources/mapper/zhdd/IncidentMapper.xml
  34. 16 0
      ruoyi-zhdd/src/main/resources/mapper/zhdd/IncidentProcessMapper.xml
  35. 21 0
      ruoyi-zhdd/src/main/resources/mapper/zhdd/PlanMapper.xml
  36. 20 0
      ruoyi-zhdd/src/main/resources/mapper/zhdd/PlanTaskMapper.xml

+ 5 - 0
ruoyi-admin/pom.xml

@@ -71,6 +71,11 @@
             <artifactId>ruoyi-demo</artifactId>
         </dependency>
 
+        <!--<dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-loadbalancer</artifactId>
+            <version>3.0.3</version>
+        </dependency>-->
 
     </dependencies>
 

+ 128 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentController.java

@@ -0,0 +1,128 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Arrays;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.IncidentProcess;
+import com.ruoyi.zhdd.service.IIncidentProcessService;
+import lombok.RequiredArgsConstructor;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
+import com.ruoyi.zhdd.domain.bo.IncidentBo;
+import com.ruoyi.zhdd.service.IIncidentService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 事件基础Controller
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Validated
+@Api(value = "事件基础控制器", tags = {"事件基础管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/incident")
+public class IncidentController extends BaseController {
+
+    private final IIncidentService iIncidentService;
+
+    private final IIncidentProcessService iIncidentProcessService;
+
+    /**
+     * 查询事件基础列表
+     */
+    @ApiOperation("查询事件基础列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:list')")
+    @GetMapping("/list")
+    public TableDataInfo<IncidentVo> list(@Validated(QueryGroup.class) IncidentBo bo) {
+        return iIncidentService.queryPageList(bo);
+    }
+
+    /**
+     * 导出事件基础列表
+     */
+    @ApiOperation("导出事件基础列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:export')")
+    @Log(title = "事件基础", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated IncidentBo bo, HttpServletResponse response) {
+        List<IncidentVo> list = iIncidentService.queryList(bo);
+        ExcelUtil.exportExcel(list, "事件基础", IncidentVo.class, response);
+    }
+
+    /**
+     * 获取事件基础详细信息
+     */
+    @ApiOperation("获取事件基础详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<Map<String, Object>> getInfo(@NotNull(message = "主键不能为空")
+                                          @PathVariable("id") Long id) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("baseInfo", iIncidentService.queryById(id));
+        map.put("process", iIncidentProcessService.list(Wrappers.<IncidentProcess>lambdaQuery()
+            .eq(IncidentProcess::getIId, id).orderByDesc(IncidentProcess::getCreateTime)));
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 新增事件基础
+     */
+    @ApiOperation("新增事件基础")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:add')")
+    @Log(title = "事件基础", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody IncidentBo bo) {
+        // 新增初始化为预警状态
+        bo.setStatus(1);
+        return toAjax(iIncidentService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改事件基础
+     */
+    @ApiOperation("修改事件基础")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:edit')")
+    @Log(title = "事件基础", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody IncidentBo bo) {
+        return toAjax(iIncidentService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除事件基础
+     */
+    @ApiOperation("删除事件基础")
+    @PreAuthorize("@ss.hasPermi('zhdd:incident:remove')")
+    @Log(title = "事件基础", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                   @PathVariable Long[] ids) {
+        return toAjax(iIncidentService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/IncidentProcessController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.IncidentProcessVo;
+import com.ruoyi.zhdd.domain.bo.IncidentProcessBo;
+import com.ruoyi.zhdd.service.IIncidentProcessService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 事件处置流程Controller
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Validated
+@Api(value = "事件处置流程控制器", tags = {"事件处置流程管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/incidentProcess")
+public class IncidentProcessController extends BaseController {
+
+    private final IIncidentProcessService iIncidentProcessService;
+
+    /**
+     * 查询事件处置流程列表
+     */
+    @ApiOperation("查询事件处置流程列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:list')")
+    @GetMapping("/list")
+    public TableDataInfo<IncidentProcessVo> list(@Validated(QueryGroup.class) IncidentProcessBo bo) {
+        return iIncidentProcessService.queryPageList(bo);
+    }
+
+    /**
+     * 导出事件处置流程列表
+     */
+    @ApiOperation("导出事件处置流程列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:export')")
+    @Log(title = "事件处置流程", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated IncidentProcessBo bo, HttpServletResponse response) {
+        List<IncidentProcessVo> list = iIncidentProcessService.queryList(bo);
+        ExcelUtil.exportExcel(list, "事件处置流程", IncidentProcessVo.class, response);
+    }
+
+    /**
+     * 获取事件处置流程详细信息
+     */
+    @ApiOperation("获取事件处置流程详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<IncidentProcessVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iIncidentProcessService.queryById(id));
+    }
+
+    /**
+     * 新增事件处置流程
+     */
+    @ApiOperation("新增事件处置流程")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:add')")
+    @Log(title = "事件处置流程", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody IncidentProcessBo bo) {
+        return toAjax(iIncidentProcessService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改事件处置流程
+     */
+    @ApiOperation("修改事件处置流程")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:edit')")
+    @Log(title = "事件处置流程", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody IncidentProcessBo bo) {
+        return toAjax(iIncidentProcessService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除事件处置流程
+     */
+    @ApiOperation("删除事件处置流程")
+    @PreAuthorize("@ss.hasPermi('zhdd:incidentProcess:remove')")
+    @Log(title = "事件处置流程" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iIncidentProcessService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 101 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/PlanController.java

@@ -0,0 +1,101 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.PlanVo;
+import com.ruoyi.zhdd.domain.bo.PlanBo;
+import com.ruoyi.zhdd.service.IPlanService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 预案管理Controller
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Validated
+@Api(value = "预案管理控制器", tags = {"预案管理管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/plan")
+public class PlanController extends BaseController {
+
+    private final IPlanService iPlanService;
+
+    /**
+     * 查询预案管理列表
+     */
+    @ApiOperation("查询预案管理列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:plan:list')")
+    @GetMapping("/list")
+    public TableDataInfo<PlanVo> list(@Validated(QueryGroup.class) PlanBo bo) {
+        return iPlanService.queryPageList(bo);
+    }
+
+    /**
+     * 获取预案管理详细信息
+     */
+    @ApiOperation("获取预案管理详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:plan:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<PlanVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iPlanService.queryById(id));
+    }
+
+    /**
+     * 新增预案管理
+     */
+    @ApiOperation("新增预案管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:plan:add')")
+    @Log(title = "预案管理", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody PlanBo bo) {
+        return toAjax(iPlanService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改预案管理
+     */
+    @ApiOperation("修改预案管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:plan:edit')")
+    @Log(title = "预案管理", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody PlanBo bo) {
+        return toAjax(iPlanService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除预案管理
+     */
+    @ApiOperation("删除预案管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:plan:remove')")
+    @Log(title = "预案管理" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iPlanService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/PlanTaskController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.zhdd;
+
+import java.util.List;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+
+import lombok.RequiredArgsConstructor;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.*;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
+import com.ruoyi.zhdd.domain.bo.PlanTaskBo;
+import com.ruoyi.zhdd.service.IPlanTaskService;
+import com.ruoyi.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 预案任务管理Controller
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Validated
+@Api(value = "预案任务管理控制器", tags = {"预案任务管理管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/zhdd/planTask")
+public class PlanTaskController extends BaseController {
+
+    private final IPlanTaskService iPlanTaskService;
+
+    /**
+     * 查询预案任务管理列表
+     */
+    @ApiOperation("查询预案任务管理列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:list')")
+    @GetMapping("/list")
+    public AjaxResult<List<PlanTaskVo>> list(@Validated(QueryGroup.class) PlanTaskBo bo) {
+        return AjaxResult.success(iPlanTaskService.queryList(bo));
+    }
+
+    /**
+     * 导出预案任务管理列表
+     */
+    @ApiOperation("导出预案任务管理列表")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:export')")
+    @Log(title = "预案任务管理", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated PlanTaskBo bo, HttpServletResponse response) {
+        List<PlanTaskVo> list = iPlanTaskService.queryList(bo);
+        ExcelUtil.exportExcel(list, "预案任务管理", PlanTaskVo.class, response);
+    }
+
+    /**
+     * 获取预案任务管理详细信息
+     */
+    @ApiOperation("获取预案任务管理详细信息")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<PlanTaskVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iPlanTaskService.queryById(id));
+    }
+
+    /**
+     * 新增预案任务管理
+     */
+    @ApiOperation("新增预案任务管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:add')")
+    @Log(title = "预案任务管理", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody PlanTaskBo bo) {
+        return toAjax(iPlanTaskService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改预案任务管理
+     */
+    @ApiOperation("修改预案任务管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:edit')")
+    @Log(title = "预案任务管理", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody PlanTaskBo bo) {
+        return toAjax(iPlanTaskService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除预案任务管理
+     */
+    @ApiOperation("删除预案任务管理")
+    @PreAuthorize("@ss.hasPermi('zhdd:planTask:remove')")
+    @Log(title = "预案任务管理" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iPlanTaskService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 2 - 2
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java

@@ -46,8 +46,8 @@ public class ResourcesConfig implements WebMvcConfigurer
         CorsConfiguration config = new CorsConfiguration();
         config.setAllowCredentials(true);
         // 设置访问源地址
-        config.addAllowedOrigin("*");
-		//config.addAllowedOriginPattern("*");
+//        config.addAllowedOrigin("*");
+		config.addAllowedOriginPattern("*");
         // 设置访问源请求头
         config.addAllowedHeader("*");
         // 设置访问源请求方法

+ 37 - 40
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -24,8 +24,7 @@ import org.springframework.web.filter.CorsFilter;
  * @author ruoyi
  */
 @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
-public class SecurityConfig extends WebSecurityConfigurerAdapter
-{
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
     /**
      * 自定义用户认证逻辑
      */
@@ -64,8 +63,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
      */
     @Bean
     @Override
-    public AuthenticationManager authenticationManagerBean() throws Exception
-    {
+    public AuthenticationManager authenticationManagerBean() throws Exception {
         return super.authenticationManagerBean();
     }
 
@@ -85,39 +83,40 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
      * authenticated       |   用户登录后可访问
      */
     @Override
-    protected void configure(HttpSecurity httpSecurity) throws Exception
-    {
+    protected void configure(HttpSecurity httpSecurity) throws Exception {
         httpSecurity
-                // CSRF禁用,因为不使用session
-                .csrf().disable()
-                // 认证失败处理类
-                .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
-                // 基于token,所以不需要session
-                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
-                // 过滤请求
-                .authorizeRequests()
-                // 对于登录login 注册register 验证码captchaImage 允许匿名访问
-                .antMatchers("/login", "/register", "/captchaImage","/test").anonymous()
-                .antMatchers(
-                        HttpMethod.GET,
-                        "/",
-                        "/*.html",
-                        "/**/*.html",
-                        "/**/*.css",
-                        "/**/*.js"
-                ).permitAll()
-                .antMatchers("/doc.html").anonymous()
-                .antMatchers("/swagger-resources/**").anonymous()
-                .antMatchers("/webjars/**").anonymous()
-                .antMatchers("/*/api-docs").anonymous()
-                .antMatchers("/druid/**").anonymous()
-                // Spring Boot Actuator 的安全配置
-                .antMatchers("/actuator").anonymous()
-                .antMatchers("/actuator/**").anonymous()
-                // 除上面外的所有请求全部需要鉴权认证
-                .anyRequest().authenticated()
-                .and()
-                .headers().frameOptions().disable();
+            // CSRF禁用,因为不使用session
+            .csrf().disable()
+            // 认证失败处理类
+            .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
+            // 基于token,所以不需要session
+            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
+            // 过滤请求
+            .authorizeRequests()
+            // 对于登录login 注册register 验证码captchaImage 允许匿名访问
+            .antMatchers("/login", "/register", "/captchaImage", "/test").anonymous()
+            .antMatchers(
+                HttpMethod.GET,
+                "/",
+                "/*.html",
+                "/**/*.html",
+                "/**/*.css",
+                "/**/*.js"
+            ).permitAll()
+            .antMatchers("/doc.html").anonymous()
+            .antMatchers("/swagger-resources/**").anonymous()
+            .antMatchers("/webjars/**").anonymous()
+            .antMatchers("/*/api-docs").anonymous()
+            .antMatchers("/druid/**").anonymous()
+            // Spring Boot Actuator 的安全配置
+            .antMatchers("/actuator").anonymous()
+            .antMatchers("/actuator/**").anonymous()
+            // 应急指挥相关
+            .antMatchers("/zhdd/**").permitAll()
+            // 除上面外的所有请求全部需要鉴权认证
+            .anyRequest().authenticated()
+            .and()
+            .headers().frameOptions().disable();
         httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler);
         // 添加JWT filter
         httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
@@ -130,8 +129,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
      * 强散列哈希加密实现
      */
     @Bean
-    public BCryptPasswordEncoder bCryptPasswordEncoder()
-    {
+    public BCryptPasswordEncoder bCryptPasswordEncoder() {
         return new BCryptPasswordEncoder();
     }
 
@@ -139,8 +137,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
      * 身份认证接口
      */
     @Override
-    protected void configure(AuthenticationManagerBuilder auth) throws Exception
-    {
+    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
         auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
     }
 }

+ 2 - 2
ruoyi-generator/src/main/resources/generator.yml

@@ -1,10 +1,10 @@
 # 代码生成
 gen:
   # 作者
-  author: ruoyi
+  author: xintong
   # 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
   packageName: com.ruoyi.zhdd
   # 自动去除表前缀,默认是false
   autoRemovePre: false
   # 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
-  tablePrefix: sys_
+  tablePrefix: sys_,tbl

+ 142 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Incident.java

@@ -0,0 +1,142 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 事件基础对象 tbl_incident
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("tbl_incident")
+public class Incident implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 事件类型
+     */
+    private Integer type;
+
+    /**
+     * 事件等级
+     */
+    private Integer level;
+
+    /**
+     * 事件地址
+     */
+    private String addr;
+
+    /**
+     * 经纬度
+     */
+    private String locations;
+
+    /**
+     * 上报部门
+     */
+    private String createDept;
+
+    /**
+     * 上报人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 上报时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+    /**
+     * 事件来源
+     */
+    private String source;
+
+    /**
+     * 事件描述
+     */
+    private String des;
+
+    /**
+     * 上传图片地址
+     */
+    private String pic;
+
+    /**
+     * 上传视频地址
+     */
+    private String video;
+
+    /**
+     * 拓展1
+     */
+    private String expr1;
+
+    /**
+     * 拓展2
+     */
+    private String expr2;
+
+    /**
+     * json拓展,用于存取多出的字段
+     */
+    private String exprJson;
+
+    /**
+     * 事件标题
+     */
+    private String name;
+
+    /**
+     * 事件状态 1:预警,2:事件 3:归档
+     */
+    private Integer status;
+
+    /**
+     * 主办单位
+     */
+    private Long madinDept;
+
+    /**
+     * 协办单位 多个数据用,分割
+     */
+    private String assistDept;
+
+}

+ 59 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/IncidentProcess.java

@@ -0,0 +1,59 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 事件处置流程对象 tbl_incident_process
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("tbl_incident_process")
+public class IncidentProcess implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 所属事件id
+     */
+    private Long iId;
+
+    /**
+     * 处置过程
+     */
+    private String des;
+
+    /**
+     * 事件状态 1:预警,2:事件 3:归档
+     */
+    private Integer status;
+
+    /**
+     * 过程创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 过程创建人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+}

+ 82 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/Plan.java

@@ -0,0 +1,82 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 预案管理对象 tbl_plan
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("tbl_plan")
+public class Plan implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 预案名称
+     */
+    private String name;
+
+    /**
+     * 预案类型
+     */
+    private Long type;
+
+    /**
+     * 预案等级
+     */
+    private Long level;
+
+    /**
+     * 创建人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 创建部门
+     */
+    private String createDept;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 77 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/PlanTask.java

@@ -0,0 +1,77 @@
+package com.ruoyi.zhdd.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+/**
+ * 预案任务管理对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("tbl_plan_task")
+public class PlanTask implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+
+    /**
+     * 任务id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 所属预案id
+     */
+    private Long planId;
+
+    /**
+     * 任务名称
+     */
+    private String taskName;
+
+    /**
+     * 任务描述
+     */
+    private String taskDes;
+
+    /**
+     * 创建用户
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+
+    /**
+     * $column.columnComment
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * $column.columnComment
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 160 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/IncidentBo.java

@@ -0,0 +1,160 @@
+package com.ruoyi.zhdd.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 事件基础业务对象 tbl_incident
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("事件基础业务对象")
+public class IncidentBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 事件类型
+     */
+    @ApiModelProperty(value = "事件类型")
+    private Integer type;
+
+    /**
+     * 事件等级
+     */
+    @ApiModelProperty(value = "事件等级")
+    private Integer level;
+
+    /**
+     * 事件地址
+     */
+    @ApiModelProperty(value = "事件地址")
+    private String addr;
+
+    /**
+     * 经纬度
+     */
+    @ApiModelProperty(value = "经纬度")
+    private String locations;
+
+    /**
+     * 上报部门
+     */
+    @ApiModelProperty(value = "上报部门")
+    private String createDept;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    private String delFlag;
+
+    /**
+     * 事件来源
+     */
+    @ApiModelProperty(value = "事件来源")
+    private String source;
+
+    /**
+     * 事件描述
+     */
+    @ApiModelProperty(value = "事件描述")
+    private String des;
+
+    /**
+     * 上传图片地址
+     */
+    @ApiModelProperty(value = "上传图片地址")
+    private String pic;
+
+    /**
+     * 上传视频地址
+     */
+    @ApiModelProperty(value = "上传视频地址")
+    private String video;
+
+    /**
+     * 拓展1
+     */
+    @ApiModelProperty(value = "拓展1")
+    private String expr1;
+
+    /**
+     * 拓展2
+     */
+    @ApiModelProperty(value = "拓展2")
+    private String expr2;
+
+    /**
+     * json拓展,用于存取多出的字段
+     */
+    @ApiModelProperty(value = "json拓展,用于存取多出的字段")
+    private String exprJson;
+
+    /**
+     * 事件标题
+     */
+    @ApiModelProperty(value = "事件标题")
+    private String name;
+
+    /**
+     * 事件状态 1:预警,2:事件 3:归档
+     */
+    @ApiModelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+    private Integer status;
+
+    /**
+     * 主办单位
+     */
+    @ApiModelProperty(value = "主办单位")
+    private Long madinDept;
+
+    /**
+     * 协办单位 多个数据用,分割
+     */
+    @ApiModelProperty(value = "协办单位 多个数据用,分割")
+    private String assistDept;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 73 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/IncidentProcessBo.java

@@ -0,0 +1,73 @@
+package com.ruoyi.zhdd.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 事件处置流程业务对象 tbl_incident_process
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("事件处置流程业务对象")
+public class IncidentProcessBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 所属事件id
+     */
+    @ApiModelProperty(value = "所属事件id")
+    private Long iId;
+
+    /**
+     * 处置过程
+     */
+    @ApiModelProperty(value = "处置过程")
+    private String des;
+
+    @ApiModelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+    private Integer status;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 88 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanBo.java

@@ -0,0 +1,88 @@
+package com.ruoyi.zhdd.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 预案管理业务对象 tbl_plan
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("预案管理业务对象")
+public class PlanBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 预案名称
+     */
+    @ApiModelProperty(value = "预案名称")
+    private String name;
+
+    /**
+     * 预案类型
+     */
+    @ApiModelProperty(value = "预案类型")
+    private Long type;
+
+    /**
+     * 预案等级
+     */
+    @ApiModelProperty(value = "预案等级")
+    private Long level;
+
+    /**
+     * 创建部门
+     */
+    @ApiModelProperty(value = "创建部门")
+    private String createDept;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    private String delFlag;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 82 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/bo/PlanTaskBo.java

@@ -0,0 +1,82 @@
+package com.ruoyi.zhdd.domain.bo;
+
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import javax.validation.constraints.*;
+
+import java.util.Date;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 预案任务管理业务对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("预案任务管理业务对象")
+public class PlanTaskBo extends BaseEntity {
+
+    /**
+     * 任务id
+     */
+    @ApiModelProperty(value = "任务id")
+    private Long id;
+
+    /**
+     * 所属预案id
+     */
+    @ApiModelProperty(value = "所属预案id")
+    private Long planId;
+
+    /**
+     * 任务名称
+     */
+    @ApiModelProperty(value = "任务名称")
+    private String taskName;
+
+    /**
+     * 任务描述
+     */
+    @ApiModelProperty(value = "任务描述")
+    private String taskDes;
+
+    /**
+     * $column.columnComment
+     */
+    @ApiModelProperty(value = "$column.columnComment")
+    private String delFlag;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 58 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentProcessVo.java

@@ -0,0 +1,58 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 事件处置流程视图对象 tbl_incident_process
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@ApiModel("事件处置流程视图对象")
+@ExcelIgnoreUnannotated
+public class IncidentProcessVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  主键id
+     */
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 所属事件id
+     */
+	@ExcelProperty(value = "所属事件id")
+	@ApiModelProperty("所属事件id")
+	private Long iId;
+
+    /**
+     * 处置过程
+     */
+	@ExcelProperty(value = "处置过程")
+	@ApiModelProperty("处置过程")
+	private String des;
+
+    @ExcelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+    @ApiModelProperty("事件状态 1:预警,2:事件 3:归档")
+    private Integer status;
+
+    @ExcelProperty(value = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ExcelProperty(value = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 152 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/IncidentVo.java

@@ -0,0 +1,152 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 事件基础视图对象 tbl_incident
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@ApiModel("事件基础视图对象")
+@ExcelIgnoreUnannotated
+public class IncidentVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  主键id
+     */
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 事件类型
+     */
+	@ExcelProperty(value = "事件类型")
+	@ApiModelProperty("事件类型")
+	private Integer type;
+
+    /**
+     * 事件等级
+     */
+	@ExcelProperty(value = "事件等级")
+	@ApiModelProperty("事件等级")
+	private Integer level;
+
+    /**
+     * 事件地址
+     */
+	@ExcelProperty(value = "事件地址")
+	@ApiModelProperty("事件地址")
+	private String addr;
+
+    /**
+     * 经纬度
+     */
+	@ExcelProperty(value = "经纬度")
+	@ApiModelProperty("经纬度")
+	private String locations;
+
+    /**
+     * 上报部门
+     */
+	@ExcelProperty(value = "上报部门")
+	@ApiModelProperty("上报部门")
+	private String createDept;
+
+    /**
+     * 事件来源
+     */
+	@ExcelProperty(value = "事件来源")
+	@ApiModelProperty("事件来源")
+	private String source;
+
+    /**
+     * 事件描述
+     */
+	@ExcelProperty(value = "事件描述")
+	@ApiModelProperty("事件描述")
+	private String des;
+
+    /**
+     * 上传图片地址
+     */
+	@ExcelProperty(value = "上传图片地址")
+	@ApiModelProperty("上传图片地址")
+	private String pic;
+
+    /**
+     * 上传视频地址
+     */
+	@ExcelProperty(value = "上传视频地址")
+	@ApiModelProperty("上传视频地址")
+	private String video;
+
+    /**
+     * 拓展1
+     */
+	@ExcelProperty(value = "拓展1")
+	@ApiModelProperty("拓展1")
+	private String expr1;
+
+    /**
+     * 拓展2
+     */
+	@ExcelProperty(value = "拓展2")
+	@ApiModelProperty("拓展2")
+	private String expr2;
+
+    /**
+     * json拓展,用于存取多出的字段
+     */
+	@ExcelProperty(value = "json拓展,用于存取多出的字段")
+	@ApiModelProperty("json拓展,用于存取多出的字段")
+	private String exprJson;
+
+    /**
+     * 事件标题
+     */
+	@ExcelProperty(value = "事件标题")
+	@ApiModelProperty("事件标题")
+	private String name;
+
+    /**
+     * 事件状态 1:预警,2:事件 3:归档
+     */
+	@ExcelProperty(value = "事件状态 1:预警,2:事件 3:归档")
+	@ApiModelProperty("事件状态 1:预警,2:事件 3:归档")
+	private Integer status;
+
+    /**
+     * 主办单位
+     */
+	@ExcelProperty(value = "主办单位")
+	@ApiModelProperty("主办单位")
+	private Long madinDept;
+
+    /**
+     * 协办单位 多个数据用,分割
+     */
+	@ExcelProperty(value = "协办单位 多个数据用,分割")
+	@ApiModelProperty("协办单位 多个数据用,分割")
+	private String assistDept;
+
+    @ExcelProperty(value = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ExcelProperty(value = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 61 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanTaskVo.java

@@ -0,0 +1,61 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 预案任务管理视图对象 tbl_plan_task
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@ApiModel("预案任务管理视图对象")
+@ExcelIgnoreUnannotated
+public class PlanTaskVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  任务id
+     */
+	@ApiModelProperty("任务id")
+	private Long id;
+
+    /**
+     * 所属预案id
+     */
+	@ExcelProperty(value = "所属预案id")
+	@ApiModelProperty("所属预案id")
+	private Long planId;
+
+    /**
+     * 任务名称
+     */
+	@ExcelProperty(value = "任务名称")
+	@ApiModelProperty("任务名称")
+	private String taskName;
+
+    /**
+     * 任务描述
+     */
+	@ExcelProperty(value = "任务描述")
+	@ApiModelProperty("任务描述")
+	private String taskDes;
+
+    @ExcelProperty(value = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ExcelProperty(value = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 68 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/PlanVo.java

@@ -0,0 +1,68 @@
+package com.ruoyi.zhdd.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 预案管理视图对象 tbl_plan
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Data
+@ApiModel("预案管理视图对象")
+@ExcelIgnoreUnannotated
+public class PlanVo {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+     *  主键id
+     */
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 预案名称
+     */
+	@ExcelProperty(value = "预案名称")
+	@ApiModelProperty("预案名称")
+	private String name;
+
+    /**
+     * 预案类型
+     */
+	@ExcelProperty(value = "预案类型")
+	@ApiModelProperty("预案类型")
+	private Long type;
+
+    /**
+     * 预案等级
+     */
+	@ExcelProperty(value = "预案等级")
+	@ApiModelProperty("预案等级")
+	private Long level;
+
+    /**
+     * 创建部门
+     */
+	@ExcelProperty(value = "创建部门")
+	@ApiModelProperty("创建部门")
+	private String createDept;
+
+    @ExcelProperty(value = "创建人")
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ExcelProperty(value = "创建时间")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/IncidentMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.Incident;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 事件基础Mapper接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IncidentMapper extends BaseMapperPlus<Incident> {
+
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/IncidentProcessMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.IncidentProcess;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 事件处置流程Mapper接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IncidentProcessMapper extends BaseMapperPlus<IncidentProcess> {
+
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/PlanMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.Plan;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 预案管理Mapper接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface PlanMapper extends BaseMapperPlus<Plan> {
+
+}

+ 16 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/mapper/PlanTaskMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.zhdd.mapper;
+
+import com.ruoyi.zhdd.domain.PlanTask;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import com.ruoyi.common.core.mybatisplus.cache.MybatisPlusRedisCache;
+import org.apache.ibatis.annotations.CacheNamespace;
+
+/**
+ * 预案任务管理Mapper接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface PlanTaskMapper extends BaseMapperPlus<PlanTask> {
+
+}

+ 56 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IIncidentProcessService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.IncidentProcess;
+import com.ruoyi.zhdd.domain.vo.IncidentProcessVo;
+import com.ruoyi.zhdd.domain.bo.IncidentProcessBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 事件处置流程Service接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IIncidentProcessService extends IServicePlus<IncidentProcess, IncidentProcessVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	IncidentProcessVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<IncidentProcessVo> queryPageList(IncidentProcessBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<IncidentProcessVo> queryList(IncidentProcessBo bo);
+
+	/**
+	 * 根据新增业务对象插入事件处置流程
+	 * @param bo 事件处置流程新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(IncidentProcessBo bo);
+
+	/**
+	 * 根据编辑业务对象修改事件处置流程
+	 * @param bo 事件处置流程编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(IncidentProcessBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IIncidentService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.Incident;
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
+import com.ruoyi.zhdd.domain.bo.IncidentBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 事件基础Service接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IIncidentService extends IServicePlus<Incident, IncidentVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	IncidentVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<IncidentVo> queryPageList(IncidentBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<IncidentVo> queryList(IncidentBo bo);
+
+	/**
+	 * 根据新增业务对象插入事件基础
+	 * @param bo 事件基础新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(IncidentBo bo);
+
+	/**
+	 * 根据编辑业务对象修改事件基础
+	 * @param bo 事件基础编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(IncidentBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IPlanService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.Plan;
+import com.ruoyi.zhdd.domain.vo.PlanVo;
+import com.ruoyi.zhdd.domain.bo.PlanBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 预案管理Service接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IPlanService extends IServicePlus<Plan, PlanVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	PlanVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<PlanVo> queryPageList(PlanBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<PlanVo> queryList(PlanBo bo);
+
+	/**
+	 * 根据新增业务对象插入预案管理
+	 * @param bo 预案管理新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(PlanBo bo);
+
+	/**
+	 * 根据编辑业务对象修改预案管理
+	 * @param bo 预案管理编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(PlanBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/IPlanTaskService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.zhdd.service;
+
+import com.ruoyi.zhdd.domain.PlanTask;
+import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
+import com.ruoyi.zhdd.domain.bo.PlanTaskBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 预案任务管理Service接口
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+public interface IPlanTaskService extends IServicePlus<PlanTask, PlanTaskVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	PlanTaskVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<PlanTaskVo> queryPageList(PlanTaskBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<PlanTaskVo> queryList(PlanTaskBo bo);
+
+	/**
+	 * 根据新增业务对象插入预案任务管理
+	 * @param bo 预案任务管理新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(PlanTaskBo bo);
+
+	/**
+	 * 根据编辑业务对象修改预案任务管理
+	 * @param bo 预案任务管理编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(PlanTaskBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 85 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentProcessServiceImpl.java

@@ -0,0 +1,85 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.IncidentProcessBo;
+import com.ruoyi.zhdd.domain.vo.IncidentProcessVo;
+import com.ruoyi.zhdd.domain.IncidentProcess;
+import com.ruoyi.zhdd.mapper.IncidentProcessMapper;
+import com.ruoyi.zhdd.service.IIncidentProcessService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 事件处置流程Service业务层处理
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Service
+public class IncidentProcessServiceImpl extends ServicePlusImpl<IncidentProcessMapper, IncidentProcess, IncidentProcessVo> implements IIncidentProcessService {
+
+    @Override
+    public IncidentProcessVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<IncidentProcessVo> queryPageList(IncidentProcessBo bo) {
+        PagePlus<IncidentProcess, IncidentProcessVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<IncidentProcessVo> queryList(IncidentProcessBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<IncidentProcess> buildQueryWrapper(IncidentProcessBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<IncidentProcess> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getIId() != null, IncidentProcess::getIId, bo.getIId());
+        lqw.eq(StringUtils.isNotBlank(bo.getDes()), IncidentProcess::getDes, bo.getDes());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(IncidentProcessBo bo) {
+        IncidentProcess add = BeanUtil.toBean(bo, IncidentProcess.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(IncidentProcessBo bo) {
+        IncidentProcess update = BeanUtil.toBean(bo, IncidentProcess.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(IncidentProcess entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 137 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/IncidentServiceImpl.java

@@ -0,0 +1,137 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.zhdd.domain.IncidentProcess;
+import com.ruoyi.zhdd.service.IIncidentProcessService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.IncidentBo;
+import com.ruoyi.zhdd.domain.vo.IncidentVo;
+import com.ruoyi.zhdd.domain.Incident;
+import com.ruoyi.zhdd.mapper.IncidentMapper;
+import com.ruoyi.zhdd.service.IIncidentService;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 事件基础Service业务层处理
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Service
+public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Incident, IncidentVo> implements IIncidentService {
+
+    @Autowired
+    private IIncidentProcessService incidentProcessService;
+
+    @Override
+    public IncidentVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<IncidentVo> queryPageList(IncidentBo bo) {
+        PagePlus<Incident, IncidentVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<IncidentVo> queryList(IncidentBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<Incident> buildQueryWrapper(IncidentBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<Incident> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getType() != null, Incident::getType, bo.getType());
+        lqw.eq(bo.getLevel() != null, Incident::getLevel, bo.getLevel());
+        lqw.eq(StringUtils.isNotBlank(bo.getAddr()), Incident::getAddr, bo.getAddr());
+        lqw.eq(StringUtils.isNotBlank(bo.getLocations()), Incident::getLocations, bo.getLocations());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreateDept()), Incident::getCreateDept, bo.getCreateDept());
+        lqw.eq(StringUtils.isNotBlank(bo.getSource()), Incident::getSource, bo.getSource());
+        lqw.eq(StringUtils.isNotBlank(bo.getDes()), Incident::getDes, bo.getDes());
+        lqw.eq(StringUtils.isNotBlank(bo.getPic()), Incident::getPic, bo.getPic());
+        lqw.eq(StringUtils.isNotBlank(bo.getVideo()), Incident::getVideo, bo.getVideo());
+        lqw.eq(StringUtils.isNotBlank(bo.getExpr1()), Incident::getExpr1, bo.getExpr1());
+        lqw.eq(StringUtils.isNotBlank(bo.getExpr2()), Incident::getExpr2, bo.getExpr2());
+        lqw.eq(StringUtils.isNotBlank(bo.getExprJson()), Incident::getExprJson, bo.getExprJson());
+        lqw.like(StringUtils.isNotBlank(bo.getName()), Incident::getName, bo.getName());
+        lqw.eq(bo.getStatus() != null, Incident::getStatus, bo.getStatus());
+        lqw.eq(bo.getMadinDept() != null, Incident::getMadinDept, bo.getMadinDept());
+        lqw.eq(StringUtils.isNotBlank(bo.getAssistDept()), Incident::getAssistDept, bo.getAssistDept());
+        return lqw;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean insertByBo(IncidentBo bo) {
+        Incident add = BeanUtil.toBean(bo, Incident.class);
+        validEntityBeforeSave(add);
+        save(add);
+        // 新增处置流程数据
+        IncidentProcess incidentProcess = new IncidentProcess();
+        incidentProcess.setIId(add.getId());
+        incidentProcess.setStatus(add.getStatus());
+        incidentProcess.setDes("新增预警事件");
+        incidentProcessService.save(incidentProcess);
+        return true;
+    }
+
+    @Override
+    public Boolean updateByBo(IncidentBo bo) {
+        // 是否为状态变更
+        boolean flag = false;
+        // 查询变更前信息
+        IncidentVo beforeInfo = getVoById(bo.getId());
+        if (beforeInfo != null) {
+            flag = !(beforeInfo.getStatus().equals(bo.getStatus()));
+        }
+        Incident update = BeanUtil.toBean(bo, Incident.class);
+        validEntityBeforeSave(update);
+        updateById(update);
+        // 处理后续业务
+        if (flag) {
+            // 新增处置流程数据
+            IncidentProcess incidentProcess = new IncidentProcess();
+            incidentProcess.setIId(update.getId());
+            incidentProcess.setStatus(update.getStatus());
+            if (update.getStatus() == 2) {
+                // 转为事件---待派发
+                incidentProcess.setDes("转为事件");
+            } else if (update.getStatus() == 3) {
+                // 派发---待处置
+                incidentProcess.setDes("派发");
+            }
+            incidentProcessService.save(incidentProcess);
+        }
+        return true;
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(Incident entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 87 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanServiceImpl.java

@@ -0,0 +1,87 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.PlanBo;
+import com.ruoyi.zhdd.domain.vo.PlanVo;
+import com.ruoyi.zhdd.domain.Plan;
+import com.ruoyi.zhdd.mapper.PlanMapper;
+import com.ruoyi.zhdd.service.IPlanService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 预案管理Service业务层处理
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Service
+public class PlanServiceImpl extends ServicePlusImpl<PlanMapper, Plan, PlanVo> implements IPlanService {
+
+    @Override
+    public PlanVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<PlanVo> queryPageList(PlanBo bo) {
+        PagePlus<Plan, PlanVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<PlanVo> queryList(PlanBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<Plan> buildQueryWrapper(PlanBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<Plan> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getName()), Plan::getName, bo.getName());
+        lqw.eq(bo.getType() != null, Plan::getType, bo.getType());
+        lqw.eq(bo.getLevel() != null, Plan::getLevel, bo.getLevel());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreateDept()), Plan::getCreateDept, bo.getCreateDept());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(PlanBo bo) {
+        Plan add = BeanUtil.toBean(bo, Plan.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(PlanBo bo) {
+        Plan update = BeanUtil.toBean(bo, Plan.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(Plan entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 86 - 0
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/PlanTaskServiceImpl.java

@@ -0,0 +1,86 @@
+package com.ruoyi.zhdd.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zhdd.domain.bo.PlanTaskBo;
+import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
+import com.ruoyi.zhdd.domain.PlanTask;
+import com.ruoyi.zhdd.mapper.PlanTaskMapper;
+import com.ruoyi.zhdd.service.IPlanTaskService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 预案任务管理Service业务层处理
+ *
+ * @author xitong
+ * @date 2021-09-28
+ */
+@Service
+public class PlanTaskServiceImpl extends ServicePlusImpl<PlanTaskMapper, PlanTask, PlanTaskVo> implements IPlanTaskService {
+
+    @Override
+    public PlanTaskVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<PlanTaskVo> queryPageList(PlanTaskBo bo) {
+        PagePlus<PlanTask, PlanTaskVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<PlanTaskVo> queryList(PlanTaskBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<PlanTask> buildQueryWrapper(PlanTaskBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<PlanTask> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getPlanId() != null, PlanTask::getPlanId, bo.getPlanId());
+        lqw.like(StringUtils.isNotBlank(bo.getTaskName()), PlanTask::getTaskName, bo.getTaskName());
+        lqw.eq(StringUtils.isNotBlank(bo.getTaskDes()), PlanTask::getTaskDes, bo.getTaskDes());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(PlanTaskBo bo) {
+        PlanTask add = BeanUtil.toBean(bo, PlanTask.class);
+        validEntityBeforeSave(add);
+        return save(add);
+    }
+
+    @Override
+    public Boolean updateByBo(PlanTaskBo bo) {
+        PlanTask update = BeanUtil.toBean(bo, PlanTask.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(PlanTask entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 33 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/IncidentMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.zhdd.mapper.IncidentMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.Incident" id="IncidentResult">
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="level" column="level"/>
+        <result property="addr" column="addr"/>
+        <result property="locations" column="locations"/>
+        <result property="createDept" column="create_dept"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="source" column="source"/>
+        <result property="des" column="des"/>
+        <result property="pic" column="pic"/>
+        <result property="video" column="video"/>
+        <result property="expr1" column="expr1"/>
+        <result property="expr2" column="expr2"/>
+        <result property="exprJson" column="expr_json"/>
+        <result property="name" column="name"/>
+        <result property="status" column="status"/>
+        <result property="madinDept" column="madin_dept"/>
+        <result property="assistDept" column="assist_dept"/>
+    </resultMap>
+
+
+</mapper>

+ 16 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/IncidentProcessMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.zhdd.mapper.IncidentProcessMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.IncidentProcess" id="IncidentProcessResult">
+        <result property="id" column="id"/>
+        <result property="iId" column="i_id"/>
+        <result property="des" column="des"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createBy" column="create_by"/>
+    </resultMap>
+
+
+</mapper>

+ 21 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/PlanMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.zhdd.mapper.PlanMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.Plan" id="PlanResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="type" column="type"/>
+        <result property="level" column="level"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="createDept" column="create_dept"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+
+</mapper>

+ 20 - 0
ruoyi-zhdd/src/main/resources/mapper/zhdd/PlanTaskMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.zhdd.mapper.PlanTaskMapper">
+
+    <resultMap type="com.ruoyi.zhdd.domain.PlanTask" id="PlanTaskResult">
+        <result property="id" column="id"/>
+        <result property="planId" column="plan_id"/>
+        <result property="taskName" column="task_name"/>
+        <result property="taskDes" column="task_des"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+    </resultMap>
+
+
+</mapper>