浏览代码

危险预警完成

zhengjie 2 年之前
父节点
当前提交
400f4a4a9b
共有 41 个文件被更改,包括 5477 次插入19 次删除
  1. 114 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TFallSolveController.java
  2. 114 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/THealthSolveController.java
  3. 114 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TOtherSolveController.java
  4. 114 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TRailSolveController.java
  5. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TSosSolveController.java
  6. 278 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/TFallSolve.java
  7. 278 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/THealthSolve.java
  8. 278 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/TOtherSolve.java
  9. 278 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/TRailSolve.java
  10. 278 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/TSosSolve.java
  11. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFallSolveMapper.java
  12. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/THealthSolveMapper.java
  13. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOtherSolveMapper.java
  14. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRailSolveMapper.java
  15. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSosSolveMapper.java
  16. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ITFallSolveService.java
  17. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ITHealthSolveService.java
  18. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ITOtherSolveService.java
  19. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ITRailSolveService.java
  20. 61 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ITSosSolveService.java
  21. 95 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFallSolveServiceImpl.java
  22. 95 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THealthSolveServiceImpl.java
  23. 95 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOtherSolveServiceImpl.java
  24. 95 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRailSolveServiceImpl.java
  25. 95 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSosSolveServiceImpl.java
  26. 57 19
      ruoyi-system/src/main/java/com/ruoyi/system/timing/CallPoliceTiming.java
  27. 101 0
      ruoyi-system/src/main/resources/mapper/system/TFallSolveMapper.xml
  28. 101 0
      ruoyi-system/src/main/resources/mapper/system/THealthSolveMapper.xml
  29. 101 0
      ruoyi-system/src/main/resources/mapper/system/TOtherSolveMapper.xml
  30. 101 0
      ruoyi-system/src/main/resources/mapper/system/TRailSolveMapper.xml
  31. 101 0
      ruoyi-system/src/main/resources/mapper/system/TSosSolveMapper.xml
  32. 44 0
      ruoyi-ui/src/api/system/fallsolve.js
  33. 44 0
      ruoyi-ui/src/api/system/healthsolve.js
  34. 44 0
      ruoyi-ui/src/api/system/othersolve.js
  35. 44 0
      ruoyi-ui/src/api/system/railsolve.js
  36. 44 0
      ruoyi-ui/src/api/system/solve.js
  37. 333 0
      ruoyi-ui/src/views/system/fallsolve/index.vue
  38. 333 0
      ruoyi-ui/src/views/system/healthsolve/index.vue
  39. 333 0
      ruoyi-ui/src/views/system/othersolve/index.vue
  40. 333 0
      ruoyi-ui/src/views/system/railsolve/index.vue
  41. 319 0
      ruoyi-ui/src/views/system/solve/index.vue

+ 114 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TFallSolveController.java

@@ -0,0 +1,114 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.TSosSolve;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.TFallSolve;
+import com.ruoyi.system.service.ITFallSolveService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 跌倒告警Controller
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/system/fallsolve")
+public class TFallSolveController extends BaseController
+{
+    @Autowired
+    private ITFallSolveService tFallSolveService;
+
+    /**
+     * 查询跌倒告警列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TFallSolve tFallSolve)
+    {
+        startPage();
+        List<TFallSolve> list = tFallSolveService.selectTFallSolveList(tFallSolve);
+        for (TFallSolve salve : list){
+            if (StringUtils.isNull(salve.getSolve_status())){
+                salve.setSolve_status(0);
+            }
+            salve.setAlarmMsg("跌倒告警求助:" + salve.getName() + "于" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,salve.getCreatetime()) + "发起跌倒告警求助");
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出跌倒告警列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:export')")
+    @Log(title = "跌倒告警", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TFallSolve tFallSolve)
+    {
+        List<TFallSolve> list = tFallSolveService.selectTFallSolveList(tFallSolve);
+        ExcelUtil<TFallSolve> util = new ExcelUtil<TFallSolve>(TFallSolve.class);
+        util.exportExcel(response, list, "跌倒告警数据");
+    }
+
+    /**
+     * 获取跌倒告警详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return success(tFallSolveService.selectTFallSolveById(id));
+    }
+
+    /**
+     * 新增跌倒告警
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:add')")
+    @Log(title = "跌倒告警", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TFallSolve tFallSolve)
+    {
+        return toAjax(tFallSolveService.insertTFallSolve(tFallSolve));
+    }
+
+    /**
+     * 修改跌倒告警
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:edit')")
+    @Log(title = "跌倒告警", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TFallSolve tFallSolve)
+    {
+        return toAjax(tFallSolveService.updateTFallSolve(tFallSolve));
+    }
+
+    /**
+     * 删除跌倒告警
+     */
+    @PreAuthorize("@ss.hasPermi('system:fallsolve:remove')")
+    @Log(title = "跌倒告警", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(tFallSolveService.deleteTFallSolveByIds(ids));
+    }
+}

+ 114 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/THealthSolveController.java

@@ -0,0 +1,114 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.TRailSolve;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.THealthSolve;
+import com.ruoyi.system.service.ITHealthSolveService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 健康告警处理Controller
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/system/healthsolve")
+public class THealthSolveController extends BaseController
+{
+    @Autowired
+    private ITHealthSolveService tHealthSolveService;
+
+    /**
+     * 查询健康告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(THealthSolve tHealthSolve)
+    {
+        startPage();
+        List<THealthSolve> list = tHealthSolveService.selectTHealthSolveList(tHealthSolve);
+        for (THealthSolve salve : list){
+            if (StringUtils.isNull(salve.getSolve_status())){
+                salve.setSolve_status(0);
+            }
+            salve.setAlarmMsg("健康告警求助:" + salve.getName() + "于" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,salve.getCreatetime()) + "发起健康告警求助");
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出健康告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:export')")
+    @Log(title = "健康告警处理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, THealthSolve tHealthSolve)
+    {
+        List<THealthSolve> list = tHealthSolveService.selectTHealthSolveList(tHealthSolve);
+        ExcelUtil<THealthSolve> util = new ExcelUtil<THealthSolve>(THealthSolve.class);
+        util.exportExcel(response, list, "健康告警处理数据");
+    }
+
+    /**
+     * 获取健康告警处理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return success(tHealthSolveService.selectTHealthSolveById(id));
+    }
+
+    /**
+     * 新增健康告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:add')")
+    @Log(title = "健康告警处理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody THealthSolve tHealthSolve)
+    {
+        return toAjax(tHealthSolveService.insertTHealthSolve(tHealthSolve));
+    }
+
+    /**
+     * 修改健康告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:edit')")
+    @Log(title = "健康告警处理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody THealthSolve tHealthSolve)
+    {
+        return toAjax(tHealthSolveService.updateTHealthSolve(tHealthSolve));
+    }
+
+    /**
+     * 删除健康告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:healthsolve:remove')")
+    @Log(title = "健康告警处理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(tHealthSolveService.deleteTHealthSolveByIds(ids));
+    }
+}

+ 114 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TOtherSolveController.java

@@ -0,0 +1,114 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.THealthSolve;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.TOtherSolve;
+import com.ruoyi.system.service.ITOtherSolveService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 其他告警处理Controller
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/system/othersolve")
+public class TOtherSolveController extends BaseController
+{
+    @Autowired
+    private ITOtherSolveService tOtherSolveService;
+
+    /**
+     * 查询其他告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TOtherSolve tOtherSolve)
+    {
+        startPage();
+        List<TOtherSolve> list = tOtherSolveService.selectTOtherSolveList(tOtherSolve);
+        for (TOtherSolve salve : list){
+            if (StringUtils.isNull(salve.getSolve_status())){
+                salve.setSolve_status(0);
+            }
+            salve.setAlarmMsg("其他告警求助:" + salve.getName() + "于" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,salve.getCreatetime()) + "发起其他告警求助");
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出其他告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:export')")
+    @Log(title = "其他告警处理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TOtherSolve tOtherSolve)
+    {
+        List<TOtherSolve> list = tOtherSolveService.selectTOtherSolveList(tOtherSolve);
+        ExcelUtil<TOtherSolve> util = new ExcelUtil<TOtherSolve>(TOtherSolve.class);
+        util.exportExcel(response, list, "其他告警处理数据");
+    }
+
+    /**
+     * 获取其他告警处理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return success(tOtherSolveService.selectTOtherSolveById(id));
+    }
+
+    /**
+     * 新增其他告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:add')")
+    @Log(title = "其他告警处理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TOtherSolve tOtherSolve)
+    {
+        return toAjax(tOtherSolveService.insertTOtherSolve(tOtherSolve));
+    }
+
+    /**
+     * 修改其他告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:edit')")
+    @Log(title = "其他告警处理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TOtherSolve tOtherSolve)
+    {
+        return toAjax(tOtherSolveService.updateTOtherSolve(tOtherSolve));
+    }
+
+    /**
+     * 删除其他告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:othersolve:remove')")
+    @Log(title = "其他告警处理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(tOtherSolveService.deleteTOtherSolveByIds(ids));
+    }
+}

+ 114 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TRailSolveController.java

@@ -0,0 +1,114 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.domain.TFallSolve;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.TRailSolve;
+import com.ruoyi.system.service.ITRailSolveService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 围栏告警处理Controller
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@RestController
+@RequestMapping("/system/railsolve")
+public class TRailSolveController extends BaseController
+{
+    @Autowired
+    private ITRailSolveService tRailSolveService;
+
+    /**
+     * 查询围栏告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TRailSolve tRailSolve)
+    {
+        startPage();
+        List<TRailSolve> list = tRailSolveService.selectTRailSolveList(tRailSolve);
+        for (TRailSolve salve : list){
+            if (StringUtils.isNull(salve.getSolve_status())){
+                salve.setSolve_status(0);
+            }
+            salve.setAlarmMsg("围栏告警求助:" + salve.getName() + "于" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,salve.getCreatetime()) + "发起围栏告警求助");
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出围栏告警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:export')")
+    @Log(title = "围栏告警处理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TRailSolve tRailSolve)
+    {
+        List<TRailSolve> list = tRailSolveService.selectTRailSolveList(tRailSolve);
+        ExcelUtil<TRailSolve> util = new ExcelUtil<TRailSolve>(TRailSolve.class);
+        util.exportExcel(response, list, "围栏告警处理数据");
+    }
+
+    /**
+     * 获取围栏告警处理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return success(tRailSolveService.selectTRailSolveById(id));
+    }
+
+    /**
+     * 新增围栏告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:add')")
+    @Log(title = "围栏告警处理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TRailSolve tRailSolve)
+    {
+        return toAjax(tRailSolveService.insertTRailSolve(tRailSolve));
+    }
+
+    /**
+     * 修改围栏告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:edit')")
+    @Log(title = "围栏告警处理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TRailSolve tRailSolve)
+    {
+        return toAjax(tRailSolveService.updateTRailSolve(tRailSolve));
+    }
+
+    /**
+     * 删除围栏告警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:railsolve:remove')")
+    @Log(title = "围栏告警处理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(tRailSolveService.deleteTRailSolveByIds(ids));
+    }
+}

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/TSosSolveController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.TSosSolve;
+import com.ruoyi.system.service.ITSosSolveService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * SOS预警处理Controller
+ * 
+ * @author zhengjie
+ * @date 2023-09-08
+ */
+@RestController
+@RequestMapping("/system/solve")
+public class TSosSolveController extends BaseController
+{
+    @Autowired
+    private ITSosSolveService tSosSolveService;
+
+    /**
+     * 查询SOS预警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TSosSolve tSosSolve)
+    {
+        startPage();
+        List<TSosSolve> list = tSosSolveService.selectTSosSolveList(tSosSolve);
+        for (TSosSolve salve : list){
+            if (StringUtils.isNull(salve.getSolve_status())){
+                salve.setSolve_status(0);
+            }
+            salve.setAlarmMsg("SOS紧急求助:" + salve.getName() + "于" + DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS,salve.getCreatetime()) + "发起SOS紧急求助");
+        }
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出SOS预警处理列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:export')")
+    @Log(title = "SOS预警处理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TSosSolve tSosSolve)
+    {
+        List<TSosSolve> list = tSosSolveService.selectTSosSolveList(tSosSolve);
+        ExcelUtil<TSosSolve> util = new ExcelUtil<TSosSolve>(TSosSolve.class);
+        util.exportExcel(response, list, "SOS预警处理数据");
+    }
+
+    /**
+     * 获取SOS预警处理详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return success(tSosSolveService.selectTSosSolveById(id));
+    }
+
+    /**
+     * 新增SOS预警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:add')")
+    @Log(title = "SOS预警处理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TSosSolve tSosSolve)
+    {
+        return toAjax(tSosSolveService.insertTSosSolve(tSosSolve));
+    }
+
+    /**
+     * 修改SOS预警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:edit')")
+    @Log(title = "SOS预警处理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TSosSolve tSosSolve)
+    {
+        return toAjax(tSosSolveService.updateTSosSolve(tSosSolve));
+    }
+
+    /**
+     * 删除SOS预警处理
+     */
+    @PreAuthorize("@ss.hasPermi('system:solve:remove')")
+    @Log(title = "SOS预警处理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(tSosSolveService.deleteTSosSolveByIds(ids));
+    }
+}

+ 278 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/TFallSolve.java

@@ -0,0 +1,278 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 跌倒告警对象 t_fall_solve
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public class TFallSolve extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** uid */
+    private Integer uid;
+
+    /** aid */
+    private Integer aid;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Integer userid;
+
+    /** 设备标识ID */
+    @Excel(name = "设备标识ID")
+    private String deviceIdCode;
+
+    /** 告警内容 */
+    @Excel(name = "告警内容")
+    private String alarmMsg;
+
+    /** 0未处理,1已处理 */
+    @Excel(name = "0未处理,1已处理")
+    private Integer solve_status;
+
+    /** 服务人员用户ID */
+    @Excel(name = "服务人员用户ID")
+    private Integer serviceUserid;
+
+    /** 时间记录 */
+    @Excel(name = "时间记录")
+    private String msg;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel_one;
+
+    /** 机构名称 */
+    @Excel(name = "机构名称")
+    private String store_name;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer device_model;
+
+    /** 设备ID */
+    @Excel(name = "设备ID")
+    private String device_id_code;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer alarm_type;
+
+    /** 告警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+    /** 告警地址 */
+    @Excel(name = "告警地址")
+    private String address_desc;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private float gps_long;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private float gps_lat;
+
+    public void setId(Integer id)
+    {
+        this.id = id;
+    }
+
+    public Integer getId()
+    {
+        return id;
+    }
+    public void setUserid(Integer userid)
+    {
+        this.userid = userid;
+    }
+
+    public Integer getUserid()
+    {
+        return userid;
+    }
+    public void setDeviceIdCode(String deviceIdCode)
+    {
+        this.deviceIdCode = deviceIdCode;
+    }
+
+    public String getDeviceIdCode()
+    {
+        return deviceIdCode;
+    }
+    public void setAlarmMsg(String alarmMsg)
+    {
+        this.alarmMsg = alarmMsg;
+    }
+
+    public String getAlarmMsg()
+    {
+        return alarmMsg;
+    }
+
+    public Integer getSolve_status() {
+        return solve_status;
+    }
+
+    public void setSolve_status(Integer solve_status) {
+        this.solve_status = solve_status;
+    }
+
+    public void setServiceUserid(Integer serviceUserid)
+    {
+        this.serviceUserid = serviceUserid;
+    }
+
+    public Integer getServiceUserid()
+    {
+        return serviceUserid;
+    }
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTel_one() {
+        return tel_one;
+    }
+
+    public void setTel_one(String tel_one) {
+        this.tel_one = tel_one;
+    }
+
+    public String getStore_name() {
+        return store_name;
+    }
+
+    public void setStore_name(String store_name) {
+        this.store_name = store_name;
+    }
+
+    public Integer getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(Integer device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_id_code() {
+        return device_id_code;
+    }
+
+    public void setDevice_id_code(String device_id_code) {
+        this.device_id_code = device_id_code;
+    }
+
+    public Integer getAlarm_type() {
+        return alarm_type;
+    }
+
+    public void setAlarm_type(Integer alarm_type) {
+        this.alarm_type = alarm_type;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public String getAddress_desc() {
+        return address_desc;
+    }
+
+    public void setAddress_desc(String address_desc) {
+        this.address_desc = address_desc;
+    }
+
+    public Integer getUid() {
+        return uid;
+    }
+
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    public Integer getAid() {
+        return aid;
+    }
+
+    public void setAid(Integer aid) {
+        this.aid = aid;
+    }
+
+    public float getGps_long() {
+        return gps_long;
+    }
+
+    public void setGps_long(float gps_long) {
+        this.gps_long = gps_long;
+    }
+
+    public float getGps_lat() {
+        return gps_lat;
+    }
+
+    public void setGps_lat(float gps_lat) {
+        this.gps_lat = gps_lat;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("uid", getUid())
+                .append("aid", getAid())
+                .append("userid", getUserid())
+                .append("deviceIdCode", getDeviceIdCode())
+                .append("alarmMsg", getAlarmMsg())
+                .append("solve_status", getSolve_status())
+                .append("serviceUserid", getServiceUserid())
+                .append("msg", getMsg())
+                .append("createtime", getCreatetime())
+                .append("store_name", getStore_name())
+                .append("name", getName())
+                .append("tel_one", getTel_one())
+                .append("device_model", getDevice_model())
+                .append("device_id_code", getDeviceIdCode())
+                .append("alarm_type", getAlarm_type())
+                .append("address_desc", getAddress_desc())
+                .append("gps_long", getGps_long())
+                .append("gps_lat", getGps_lat())
+                .toString();
+    }
+}

+ 278 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/THealthSolve.java

@@ -0,0 +1,278 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 健康告警处理对象 t_health_solve
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public class THealthSolve extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** uid */
+    private Integer uid;
+
+    /** aid */
+    private Integer aid;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Integer userid;
+
+    /** 设备标识ID */
+    @Excel(name = "设备标识ID")
+    private String deviceIdCode;
+
+    /** 告警内容 */
+    @Excel(name = "告警内容")
+    private String alarmMsg;
+
+    /** 0未处理,1已处理 */
+    @Excel(name = "0未处理,1已处理")
+    private Integer solve_status;
+
+    /** 服务人员用户ID */
+    @Excel(name = "服务人员用户ID")
+    private Integer serviceUserid;
+
+    /** 时间记录 */
+    @Excel(name = "时间记录")
+    private String msg;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel_one;
+
+    /** 机构名称 */
+    @Excel(name = "机构名称")
+    private String store_name;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer device_model;
+
+    /** 设备ID */
+    @Excel(name = "设备ID")
+    private String device_id_code;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer alarm_type;
+
+    /** 告警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+    /** 告警地址 */
+    @Excel(name = "告警地址")
+    private String address_desc;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private float gps_long;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private float gps_lat;
+
+    public void setId(Integer id)
+    {
+        this.id = id;
+    }
+
+    public Integer getId()
+    {
+        return id;
+    }
+    public void setUserid(Integer userid)
+    {
+        this.userid = userid;
+    }
+
+    public Integer getUserid()
+    {
+        return userid;
+    }
+    public void setDeviceIdCode(String deviceIdCode)
+    {
+        this.deviceIdCode = deviceIdCode;
+    }
+
+    public String getDeviceIdCode()
+    {
+        return deviceIdCode;
+    }
+    public void setAlarmMsg(String alarmMsg)
+    {
+        this.alarmMsg = alarmMsg;
+    }
+
+    public String getAlarmMsg()
+    {
+        return alarmMsg;
+    }
+
+    public Integer getSolve_status() {
+        return solve_status;
+    }
+
+    public void setSolve_status(Integer solve_status) {
+        this.solve_status = solve_status;
+    }
+
+    public void setServiceUserid(Integer serviceUserid)
+    {
+        this.serviceUserid = serviceUserid;
+    }
+
+    public Integer getServiceUserid()
+    {
+        return serviceUserid;
+    }
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTel_one() {
+        return tel_one;
+    }
+
+    public void setTel_one(String tel_one) {
+        this.tel_one = tel_one;
+    }
+
+    public String getStore_name() {
+        return store_name;
+    }
+
+    public void setStore_name(String store_name) {
+        this.store_name = store_name;
+    }
+
+    public Integer getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(Integer device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_id_code() {
+        return device_id_code;
+    }
+
+    public void setDevice_id_code(String device_id_code) {
+        this.device_id_code = device_id_code;
+    }
+
+    public Integer getAlarm_type() {
+        return alarm_type;
+    }
+
+    public void setAlarm_type(Integer alarm_type) {
+        this.alarm_type = alarm_type;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public String getAddress_desc() {
+        return address_desc;
+    }
+
+    public void setAddress_desc(String address_desc) {
+        this.address_desc = address_desc;
+    }
+
+    public Integer getUid() {
+        return uid;
+    }
+
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    public Integer getAid() {
+        return aid;
+    }
+
+    public void setAid(Integer aid) {
+        this.aid = aid;
+    }
+
+    public float getGps_long() {
+        return gps_long;
+    }
+
+    public void setGps_long(float gps_long) {
+        this.gps_long = gps_long;
+    }
+
+    public float getGps_lat() {
+        return gps_lat;
+    }
+
+    public void setGps_lat(float gps_lat) {
+        this.gps_lat = gps_lat;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("uid", getUid())
+                .append("aid", getAid())
+                .append("userid", getUserid())
+                .append("deviceIdCode", getDeviceIdCode())
+                .append("alarmMsg", getAlarmMsg())
+                .append("solve_status", getSolve_status())
+                .append("serviceUserid", getServiceUserid())
+                .append("msg", getMsg())
+                .append("createtime", getCreatetime())
+                .append("store_name", getStore_name())
+                .append("name", getName())
+                .append("tel_one", getTel_one())
+                .append("device_model", getDevice_model())
+                .append("device_id_code", getDeviceIdCode())
+                .append("alarm_type", getAlarm_type())
+                .append("address_desc", getAddress_desc())
+                .append("gps_long", getGps_long())
+                .append("gps_lat", getGps_lat())
+                .toString();
+    }
+}

+ 278 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/TOtherSolve.java

@@ -0,0 +1,278 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 其他告警处理对象 t_other_solve
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public class TOtherSolve extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** uid */
+    private Integer uid;
+
+    /** aid */
+    private Integer aid;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Integer userid;
+
+    /** 设备标识ID */
+    @Excel(name = "设备标识ID")
+    private String deviceIdCode;
+
+    /** 告警内容 */
+    @Excel(name = "告警内容")
+    private String alarmMsg;
+
+    /** 0未处理,1已处理 */
+    @Excel(name = "0未处理,1已处理")
+    private Integer solve_status;
+
+    /** 服务人员用户ID */
+    @Excel(name = "服务人员用户ID")
+    private Integer serviceUserid;
+
+    /** 时间记录 */
+    @Excel(name = "时间记录")
+    private String msg;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel_one;
+
+    /** 机构名称 */
+    @Excel(name = "机构名称")
+    private String store_name;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer device_model;
+
+    /** 设备ID */
+    @Excel(name = "设备ID")
+    private String device_id_code;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer alarm_type;
+
+    /** 告警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+    /** 告警地址 */
+    @Excel(name = "告警地址")
+    private String address_desc;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private float gps_long;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private float gps_lat;
+
+    public void setId(Integer id)
+    {
+        this.id = id;
+    }
+
+    public Integer getId()
+    {
+        return id;
+    }
+    public void setUserid(Integer userid)
+    {
+        this.userid = userid;
+    }
+
+    public Integer getUserid()
+    {
+        return userid;
+    }
+    public void setDeviceIdCode(String deviceIdCode)
+    {
+        this.deviceIdCode = deviceIdCode;
+    }
+
+    public String getDeviceIdCode()
+    {
+        return deviceIdCode;
+    }
+    public void setAlarmMsg(String alarmMsg)
+    {
+        this.alarmMsg = alarmMsg;
+    }
+
+    public String getAlarmMsg()
+    {
+        return alarmMsg;
+    }
+
+    public Integer getSolve_status() {
+        return solve_status;
+    }
+
+    public void setSolve_status(Integer solve_status) {
+        this.solve_status = solve_status;
+    }
+
+    public void setServiceUserid(Integer serviceUserid)
+    {
+        this.serviceUserid = serviceUserid;
+    }
+
+    public Integer getServiceUserid()
+    {
+        return serviceUserid;
+    }
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTel_one() {
+        return tel_one;
+    }
+
+    public void setTel_one(String tel_one) {
+        this.tel_one = tel_one;
+    }
+
+    public String getStore_name() {
+        return store_name;
+    }
+
+    public void setStore_name(String store_name) {
+        this.store_name = store_name;
+    }
+
+    public Integer getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(Integer device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_id_code() {
+        return device_id_code;
+    }
+
+    public void setDevice_id_code(String device_id_code) {
+        this.device_id_code = device_id_code;
+    }
+
+    public Integer getAlarm_type() {
+        return alarm_type;
+    }
+
+    public void setAlarm_type(Integer alarm_type) {
+        this.alarm_type = alarm_type;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public String getAddress_desc() {
+        return address_desc;
+    }
+
+    public void setAddress_desc(String address_desc) {
+        this.address_desc = address_desc;
+    }
+
+    public Integer getUid() {
+        return uid;
+    }
+
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    public Integer getAid() {
+        return aid;
+    }
+
+    public void setAid(Integer aid) {
+        this.aid = aid;
+    }
+
+    public float getGps_long() {
+        return gps_long;
+    }
+
+    public void setGps_long(float gps_long) {
+        this.gps_long = gps_long;
+    }
+
+    public float getGps_lat() {
+        return gps_lat;
+    }
+
+    public void setGps_lat(float gps_lat) {
+        this.gps_lat = gps_lat;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("uid", getUid())
+                .append("aid", getAid())
+                .append("userid", getUserid())
+                .append("deviceIdCode", getDeviceIdCode())
+                .append("alarmMsg", getAlarmMsg())
+                .append("solve_status", getSolve_status())
+                .append("serviceUserid", getServiceUserid())
+                .append("msg", getMsg())
+                .append("createtime", getCreatetime())
+                .append("store_name", getStore_name())
+                .append("name", getName())
+                .append("tel_one", getTel_one())
+                .append("device_model", getDevice_model())
+                .append("device_id_code", getDeviceIdCode())
+                .append("alarm_type", getAlarm_type())
+                .append("address_desc", getAddress_desc())
+                .append("gps_long", getGps_long())
+                .append("gps_lat", getGps_lat())
+                .toString();
+    }
+}

+ 278 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/TRailSolve.java

@@ -0,0 +1,278 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * 围栏告警处理对象 t_rail_solve
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public class TRailSolve extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** uid */
+    private Integer uid;
+
+    /** aid */
+    private Integer aid;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Integer userid;
+
+    /** 设备标识ID */
+    @Excel(name = "设备标识ID")
+    private String deviceIdCode;
+
+    /** 告警内容 */
+    @Excel(name = "告警内容")
+    private String alarmMsg;
+
+    /** 0未处理,1已处理 */
+    @Excel(name = "0未处理,1已处理")
+    private Integer solve_status;
+
+    /** 服务人员用户ID */
+    @Excel(name = "服务人员用户ID")
+    private Integer serviceUserid;
+
+    /** 时间记录 */
+    @Excel(name = "时间记录")
+    private String msg;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel_one;
+
+    /** 机构名称 */
+    @Excel(name = "机构名称")
+    private String store_name;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer device_model;
+
+    /** 设备ID */
+    @Excel(name = "设备ID")
+    private String device_id_code;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer status_type;
+
+    /** 告警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+    /** 告警地址 */
+    @Excel(name = "告警地址")
+    private String address_desc;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private float gps_long;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private float gps_lat;
+
+    public void setId(Integer id)
+    {
+        this.id = id;
+    }
+
+    public Integer getId()
+    {
+        return id;
+    }
+    public void setUserid(Integer userid)
+    {
+        this.userid = userid;
+    }
+
+    public Integer getUserid()
+    {
+        return userid;
+    }
+    public void setDeviceIdCode(String deviceIdCode)
+    {
+        this.deviceIdCode = deviceIdCode;
+    }
+
+    public String getDeviceIdCode()
+    {
+        return deviceIdCode;
+    }
+    public void setAlarmMsg(String alarmMsg)
+    {
+        this.alarmMsg = alarmMsg;
+    }
+
+    public String getAlarmMsg()
+    {
+        return alarmMsg;
+    }
+
+    public Integer getSolve_status() {
+        return solve_status;
+    }
+
+    public void setSolve_status(Integer solve_status) {
+        this.solve_status = solve_status;
+    }
+
+    public void setServiceUserid(Integer serviceUserid)
+    {
+        this.serviceUserid = serviceUserid;
+    }
+
+    public Integer getServiceUserid()
+    {
+        return serviceUserid;
+    }
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTel_one() {
+        return tel_one;
+    }
+
+    public void setTel_one(String tel_one) {
+        this.tel_one = tel_one;
+    }
+
+    public String getStore_name() {
+        return store_name;
+    }
+
+    public void setStore_name(String store_name) {
+        this.store_name = store_name;
+    }
+
+    public Integer getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(Integer device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_id_code() {
+        return device_id_code;
+    }
+
+    public void setDevice_id_code(String device_id_code) {
+        this.device_id_code = device_id_code;
+    }
+
+    public Integer getStatus_type() {
+        return status_type;
+    }
+
+    public void setStatus_type(Integer status_type) {
+        this.status_type = status_type;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public String getAddress_desc() {
+        return address_desc;
+    }
+
+    public void setAddress_desc(String address_desc) {
+        this.address_desc = address_desc;
+    }
+
+    public Integer getUid() {
+        return uid;
+    }
+
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    public Integer getAid() {
+        return aid;
+    }
+
+    public void setAid(Integer aid) {
+        this.aid = aid;
+    }
+
+    public float getGps_long() {
+        return gps_long;
+    }
+
+    public void setGps_long(float gps_long) {
+        this.gps_long = gps_long;
+    }
+
+    public float getGps_lat() {
+        return gps_lat;
+    }
+
+    public void setGps_lat(float gps_lat) {
+        this.gps_lat = gps_lat;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("uid", getUid())
+                .append("aid", getAid())
+                .append("userid", getUserid())
+                .append("deviceIdCode", getDeviceIdCode())
+                .append("alarmMsg", getAlarmMsg())
+                .append("solve_status", getSolve_status())
+                .append("serviceUserid", getServiceUserid())
+                .append("msg", getMsg())
+                .append("createtime", getCreatetime())
+                .append("store_name", getStore_name())
+                .append("name", getName())
+                .append("tel_one", getTel_one())
+                .append("device_model", getDevice_model())
+                .append("device_id_code", getDeviceIdCode())
+                .append("status_type", getStatus_type())
+                .append("address_desc", getAddress_desc())
+                .append("gps_long", getGps_long())
+                .append("gps_lat", getGps_lat())
+                .toString();
+    }
+}

+ 278 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/TSosSolve.java

@@ -0,0 +1,278 @@
+package com.ruoyi.system.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+import java.util.Date;
+
+/**
+ * SOS预警处理对象 t_sos_solve
+ * 
+ * @author zhengjie
+ * @date 2023-09-08
+ */
+public class TSosSolve extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** uid */
+    private Integer uid;
+
+    /** aid */
+    private Integer aid;
+
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    private Integer userid;
+
+    /** 设备标识ID */
+    @Excel(name = "设备标识ID")
+    private String deviceIdCode;
+
+    /** 告警内容 */
+    @Excel(name = "告警内容")
+    private String alarmMsg;
+
+    /** 0未处理,1已处理 */
+    @Excel(name = "0未处理,1已处理")
+    private Integer solve_status;
+
+    /** 服务人员用户ID */
+    @Excel(name = "服务人员用户ID")
+    private Integer serviceUserid;
+
+    /** 时间记录 */
+    @Excel(name = "时间记录")
+    private String msg;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    private String name;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String tel_one;
+
+    /** 机构名称 */
+    @Excel(name = "机构名称")
+    private String store_name;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer device_model;
+
+    /** 设备ID */
+    @Excel(name = "设备ID")
+    private String device_id_code;
+
+    /** 设备型号 */
+    @Excel(name = "设备型号")
+    private Integer alarm_type;
+
+    /** 告警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+    /** 告警地址 */
+    @Excel(name = "告警地址")
+    private String address_desc;
+
+    /** 经度 */
+    @Excel(name = "经度")
+    private float gps_long;
+
+    /** 纬度 */
+    @Excel(name = "纬度")
+    private float gps_lat;
+
+    public void setId(Integer id) 
+    {
+        this.id = id;
+    }
+
+    public Integer getId() 
+    {
+        return id;
+    }
+    public void setUserid(Integer userid) 
+    {
+        this.userid = userid;
+    }
+
+    public Integer getUserid() 
+    {
+        return userid;
+    }
+    public void setDeviceIdCode(String deviceIdCode) 
+    {
+        this.deviceIdCode = deviceIdCode;
+    }
+
+    public String getDeviceIdCode() 
+    {
+        return deviceIdCode;
+    }
+    public void setAlarmMsg(String alarmMsg) 
+    {
+        this.alarmMsg = alarmMsg;
+    }
+
+    public String getAlarmMsg() 
+    {
+        return alarmMsg;
+    }
+
+    public Integer getSolve_status() {
+        return solve_status;
+    }
+
+    public void setSolve_status(Integer solve_status) {
+        this.solve_status = solve_status;
+    }
+
+    public void setServiceUserid(Integer serviceUserid)
+    {
+        this.serviceUserid = serviceUserid;
+    }
+
+    public Integer getServiceUserid() 
+    {
+        return serviceUserid;
+    }
+    public void setMsg(String msg) 
+    {
+        this.msg = msg;
+    }
+
+    public String getMsg() 
+    {
+        return msg;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTel_one() {
+        return tel_one;
+    }
+
+    public void setTel_one(String tel_one) {
+        this.tel_one = tel_one;
+    }
+
+    public String getStore_name() {
+        return store_name;
+    }
+
+    public void setStore_name(String store_name) {
+        this.store_name = store_name;
+    }
+
+    public Integer getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(Integer device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_id_code() {
+        return device_id_code;
+    }
+
+    public void setDevice_id_code(String device_id_code) {
+        this.device_id_code = device_id_code;
+    }
+
+    public Integer getAlarm_type() {
+        return alarm_type;
+    }
+
+    public void setAlarm_type(Integer alarm_type) {
+        this.alarm_type = alarm_type;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public String getAddress_desc() {
+        return address_desc;
+    }
+
+    public void setAddress_desc(String address_desc) {
+        this.address_desc = address_desc;
+    }
+
+    public Integer getUid() {
+        return uid;
+    }
+
+    public void setUid(Integer uid) {
+        this.uid = uid;
+    }
+
+    public Integer getAid() {
+        return aid;
+    }
+
+    public void setAid(Integer aid) {
+        this.aid = aid;
+    }
+
+    public float getGps_long() {
+        return gps_long;
+    }
+
+    public void setGps_long(float gps_long) {
+        this.gps_long = gps_long;
+    }
+
+    public float getGps_lat() {
+        return gps_lat;
+    }
+
+    public void setGps_lat(float gps_lat) {
+        this.gps_lat = gps_lat;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("uid", getUid())
+            .append("aid", getAid())
+            .append("userid", getUserid())
+            .append("deviceIdCode", getDeviceIdCode())
+            .append("alarmMsg", getAlarmMsg())
+            .append("solve_status", getSolve_status())
+            .append("serviceUserid", getServiceUserid())
+            .append("msg", getMsg())
+            .append("createtime", getCreatetime())
+            .append("store_name", getStore_name())
+            .append("name", getName())
+            .append("tel_one", getTel_one())
+            .append("device_model", getDevice_model())
+            .append("device_id_code", getDeviceIdCode())
+            .append("alarm_type", getAlarm_type())
+            .append("address_desc", getAddress_desc())
+            .append("gps_long", getGps_long())
+            .append("gps_lat", getGps_lat())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFallSolveMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.TFallSolve;
+
+/**
+ * 跌倒告警Mapper接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface TFallSolveMapper 
+{
+    /**
+     * 查询跌倒告警
+     * 
+     * @param id 跌倒告警主键
+     * @return 跌倒告警
+     */
+    public TFallSolve selectTFallSolveById(Integer id);
+
+    /**
+     * 查询跌倒告警列表
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 跌倒告警集合
+     */
+    public List<TFallSolve> selectTFallSolveList(TFallSolve tFallSolve);
+
+    /**
+     * 新增跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    public int insertTFallSolve(TFallSolve tFallSolve);
+
+    /**
+     * 修改跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    public int updateTFallSolve(TFallSolve tFallSolve);
+
+    /**
+     * 删除跌倒告警
+     * 
+     * @param id 跌倒告警主键
+     * @return 结果
+     */
+    public int deleteTFallSolveById(Integer id);
+
+    /**
+     * 批量删除跌倒告警
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTFallSolveByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/THealthSolveMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.THealthSolve;
+
+/**
+ * 健康告警处理Mapper接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface THealthSolveMapper 
+{
+    /**
+     * 查询健康告警处理
+     * 
+     * @param id 健康告警处理主键
+     * @return 健康告警处理
+     */
+    public THealthSolve selectTHealthSolveById(Integer id);
+
+    /**
+     * 查询健康告警处理列表
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 健康告警处理集合
+     */
+    public List<THealthSolve> selectTHealthSolveList(THealthSolve tHealthSolve);
+
+    /**
+     * 新增健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    public int insertTHealthSolve(THealthSolve tHealthSolve);
+
+    /**
+     * 修改健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    public int updateTHealthSolve(THealthSolve tHealthSolve);
+
+    /**
+     * 删除健康告警处理
+     * 
+     * @param id 健康告警处理主键
+     * @return 结果
+     */
+    public int deleteTHealthSolveById(Integer id);
+
+    /**
+     * 批量删除健康告警处理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTHealthSolveByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOtherSolveMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.TOtherSolve;
+
+/**
+ * 其他告警处理Mapper接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface TOtherSolveMapper 
+{
+    /**
+     * 查询其他告警处理
+     * 
+     * @param id 其他告警处理主键
+     * @return 其他告警处理
+     */
+    public TOtherSolve selectTOtherSolveById(Integer id);
+
+    /**
+     * 查询其他告警处理列表
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 其他告警处理集合
+     */
+    public List<TOtherSolve> selectTOtherSolveList(TOtherSolve tOtherSolve);
+
+    /**
+     * 新增其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    public int insertTOtherSolve(TOtherSolve tOtherSolve);
+
+    /**
+     * 修改其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    public int updateTOtherSolve(TOtherSolve tOtherSolve);
+
+    /**
+     * 删除其他告警处理
+     * 
+     * @param id 其他告警处理主键
+     * @return 结果
+     */
+    public int deleteTOtherSolveById(Integer id);
+
+    /**
+     * 批量删除其他告警处理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTOtherSolveByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TRailSolveMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.TRailSolve;
+
+/**
+ * 围栏告警处理Mapper接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface TRailSolveMapper 
+{
+    /**
+     * 查询围栏告警处理
+     * 
+     * @param id 围栏告警处理主键
+     * @return 围栏告警处理
+     */
+    public TRailSolve selectTRailSolveById(Integer id);
+
+    /**
+     * 查询围栏告警处理列表
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 围栏告警处理集合
+     */
+    public List<TRailSolve> selectTRailSolveList(TRailSolve tRailSolve);
+
+    /**
+     * 新增围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    public int insertTRailSolve(TRailSolve tRailSolve);
+
+    /**
+     * 修改围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    public int updateTRailSolve(TRailSolve tRailSolve);
+
+    /**
+     * 删除围栏告警处理
+     * 
+     * @param id 围栏告警处理主键
+     * @return 结果
+     */
+    public int deleteTRailSolveById(Integer id);
+
+    /**
+     * 批量删除围栏告警处理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTRailSolveByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSosSolveMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.TSosSolve;
+
+/**
+ * SOS预警处理Mapper接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-08
+ */
+public interface TSosSolveMapper 
+{
+    /**
+     * 查询SOS预警处理
+     * 
+     * @param id SOS预警处理主键
+     * @return SOS预警处理
+     */
+    public TSosSolve selectTSosSolveById(Integer id);
+
+    /**
+     * 查询SOS预警处理列表
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return SOS预警处理集合
+     */
+    public List<TSosSolve> selectTSosSolveList(TSosSolve tSosSolve);
+
+    /**
+     * 新增SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    public int insertTSosSolve(TSosSolve tSosSolve);
+
+    /**
+     * 修改SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    public int updateTSosSolve(TSosSolve tSosSolve);
+
+    /**
+     * 删除SOS预警处理
+     * 
+     * @param id SOS预警处理主键
+     * @return 结果
+     */
+    public int deleteTSosSolveById(Integer id);
+
+    /**
+     * 批量删除SOS预警处理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTSosSolveByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ITFallSolveService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.TFallSolve;
+
+/**
+ * 跌倒告警Service接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface ITFallSolveService 
+{
+    /**
+     * 查询跌倒告警
+     * 
+     * @param id 跌倒告警主键
+     * @return 跌倒告警
+     */
+    public TFallSolve selectTFallSolveById(Integer id);
+
+    /**
+     * 查询跌倒告警列表
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 跌倒告警集合
+     */
+    public List<TFallSolve> selectTFallSolveList(TFallSolve tFallSolve);
+
+    /**
+     * 新增跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    public int insertTFallSolve(TFallSolve tFallSolve);
+
+    /**
+     * 修改跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    public int updateTFallSolve(TFallSolve tFallSolve);
+
+    /**
+     * 批量删除跌倒告警
+     * 
+     * @param ids 需要删除的跌倒告警主键集合
+     * @return 结果
+     */
+    public int deleteTFallSolveByIds(Integer[] ids);
+
+    /**
+     * 删除跌倒告警信息
+     * 
+     * @param id 跌倒告警主键
+     * @return 结果
+     */
+    public int deleteTFallSolveById(Integer id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ITHealthSolveService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.THealthSolve;
+
+/**
+ * 健康告警处理Service接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface ITHealthSolveService 
+{
+    /**
+     * 查询健康告警处理
+     * 
+     * @param id 健康告警处理主键
+     * @return 健康告警处理
+     */
+    public THealthSolve selectTHealthSolveById(Integer id);
+
+    /**
+     * 查询健康告警处理列表
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 健康告警处理集合
+     */
+    public List<THealthSolve> selectTHealthSolveList(THealthSolve tHealthSolve);
+
+    /**
+     * 新增健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    public int insertTHealthSolve(THealthSolve tHealthSolve);
+
+    /**
+     * 修改健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    public int updateTHealthSolve(THealthSolve tHealthSolve);
+
+    /**
+     * 批量删除健康告警处理
+     * 
+     * @param ids 需要删除的健康告警处理主键集合
+     * @return 结果
+     */
+    public int deleteTHealthSolveByIds(Integer[] ids);
+
+    /**
+     * 删除健康告警处理信息
+     * 
+     * @param id 健康告警处理主键
+     * @return 结果
+     */
+    public int deleteTHealthSolveById(Integer id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ITOtherSolveService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.TOtherSolve;
+
+/**
+ * 其他告警处理Service接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface ITOtherSolveService 
+{
+    /**
+     * 查询其他告警处理
+     * 
+     * @param id 其他告警处理主键
+     * @return 其他告警处理
+     */
+    public TOtherSolve selectTOtherSolveById(Integer id);
+
+    /**
+     * 查询其他告警处理列表
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 其他告警处理集合
+     */
+    public List<TOtherSolve> selectTOtherSolveList(TOtherSolve tOtherSolve);
+
+    /**
+     * 新增其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    public int insertTOtherSolve(TOtherSolve tOtherSolve);
+
+    /**
+     * 修改其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    public int updateTOtherSolve(TOtherSolve tOtherSolve);
+
+    /**
+     * 批量删除其他告警处理
+     * 
+     * @param ids 需要删除的其他告警处理主键集合
+     * @return 结果
+     */
+    public int deleteTOtherSolveByIds(Integer[] ids);
+
+    /**
+     * 删除其他告警处理信息
+     * 
+     * @param id 其他告警处理主键
+     * @return 结果
+     */
+    public int deleteTOtherSolveById(Integer id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ITRailSolveService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.TRailSolve;
+
+/**
+ * 围栏告警处理Service接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+public interface ITRailSolveService 
+{
+    /**
+     * 查询围栏告警处理
+     * 
+     * @param id 围栏告警处理主键
+     * @return 围栏告警处理
+     */
+    public TRailSolve selectTRailSolveById(Integer id);
+
+    /**
+     * 查询围栏告警处理列表
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 围栏告警处理集合
+     */
+    public List<TRailSolve> selectTRailSolveList(TRailSolve tRailSolve);
+
+    /**
+     * 新增围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    public int insertTRailSolve(TRailSolve tRailSolve);
+
+    /**
+     * 修改围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    public int updateTRailSolve(TRailSolve tRailSolve);
+
+    /**
+     * 批量删除围栏告警处理
+     * 
+     * @param ids 需要删除的围栏告警处理主键集合
+     * @return 结果
+     */
+    public int deleteTRailSolveByIds(Integer[] ids);
+
+    /**
+     * 删除围栏告警处理信息
+     * 
+     * @param id 围栏告警处理主键
+     * @return 结果
+     */
+    public int deleteTRailSolveById(Integer id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ITSosSolveService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.TSosSolve;
+
+/**
+ * SOS预警处理Service接口
+ * 
+ * @author zhengjie
+ * @date 2023-09-08
+ */
+public interface ITSosSolveService 
+{
+    /**
+     * 查询SOS预警处理
+     * 
+     * @param id SOS预警处理主键
+     * @return SOS预警处理
+     */
+    public TSosSolve selectTSosSolveById(Integer id);
+
+    /**
+     * 查询SOS预警处理列表
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return SOS预警处理集合
+     */
+    public List<TSosSolve> selectTSosSolveList(TSosSolve tSosSolve);
+
+    /**
+     * 新增SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    public int insertTSosSolve(TSosSolve tSosSolve);
+
+    /**
+     * 修改SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    public int updateTSosSolve(TSosSolve tSosSolve);
+
+    /**
+     * 批量删除SOS预警处理
+     * 
+     * @param ids 需要删除的SOS预警处理主键集合
+     * @return 结果
+     */
+    public int deleteTSosSolveByIds(Integer[] ids);
+
+    /**
+     * 删除SOS预警处理信息
+     * 
+     * @param id SOS预警处理主键
+     * @return 结果
+     */
+    public int deleteTSosSolveById(Integer id);
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFallSolveServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.TFallSolveMapper;
+import com.ruoyi.system.domain.TFallSolve;
+import com.ruoyi.system.service.ITFallSolveService;
+
+/**
+ * 跌倒告警Service业务层处理
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@Service
+public class TFallSolveServiceImpl implements ITFallSolveService 
+{
+    @Autowired
+    private TFallSolveMapper tFallSolveMapper;
+
+    /**
+     * 查询跌倒告警
+     * 
+     * @param id 跌倒告警主键
+     * @return 跌倒告警
+     */
+    @Override
+    public TFallSolve selectTFallSolveById(Integer id)
+    {
+        return tFallSolveMapper.selectTFallSolveById(id);
+    }
+
+    /**
+     * 查询跌倒告警列表
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 跌倒告警
+     */
+    @Override
+    public List<TFallSolve> selectTFallSolveList(TFallSolve tFallSolve)
+    {
+        return tFallSolveMapper.selectTFallSolveList(tFallSolve);
+    }
+
+    /**
+     * 新增跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    @Override
+    public int insertTFallSolve(TFallSolve tFallSolve)
+    {
+        tFallSolve.setCreateTime(DateUtils.getNowDate());
+        return tFallSolveMapper.insertTFallSolve(tFallSolve);
+    }
+
+    /**
+     * 修改跌倒告警
+     * 
+     * @param tFallSolve 跌倒告警
+     * @return 结果
+     */
+    @Override
+    public int updateTFallSolve(TFallSolve tFallSolve)
+    {
+        return tFallSolveMapper.updateTFallSolve(tFallSolve);
+    }
+
+    /**
+     * 批量删除跌倒告警
+     * 
+     * @param ids 需要删除的跌倒告警主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTFallSolveByIds(Integer[] ids)
+    {
+        return tFallSolveMapper.deleteTFallSolveByIds(ids);
+    }
+
+    /**
+     * 删除跌倒告警信息
+     * 
+     * @param id 跌倒告警主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTFallSolveById(Integer id)
+    {
+        return tFallSolveMapper.deleteTFallSolveById(id);
+    }
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THealthSolveServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.THealthSolveMapper;
+import com.ruoyi.system.domain.THealthSolve;
+import com.ruoyi.system.service.ITHealthSolveService;
+
+/**
+ * 健康告警处理Service业务层处理
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@Service
+public class THealthSolveServiceImpl implements ITHealthSolveService 
+{
+    @Autowired
+    private THealthSolveMapper tHealthSolveMapper;
+
+    /**
+     * 查询健康告警处理
+     * 
+     * @param id 健康告警处理主键
+     * @return 健康告警处理
+     */
+    @Override
+    public THealthSolve selectTHealthSolveById(Integer id)
+    {
+        return tHealthSolveMapper.selectTHealthSolveById(id);
+    }
+
+    /**
+     * 查询健康告警处理列表
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 健康告警处理
+     */
+    @Override
+    public List<THealthSolve> selectTHealthSolveList(THealthSolve tHealthSolve)
+    {
+        return tHealthSolveMapper.selectTHealthSolveList(tHealthSolve);
+    }
+
+    /**
+     * 新增健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    @Override
+    public int insertTHealthSolve(THealthSolve tHealthSolve)
+    {
+        tHealthSolve.setCreateTime(DateUtils.getNowDate());
+        return tHealthSolveMapper.insertTHealthSolve(tHealthSolve);
+    }
+
+    /**
+     * 修改健康告警处理
+     * 
+     * @param tHealthSolve 健康告警处理
+     * @return 结果
+     */
+    @Override
+    public int updateTHealthSolve(THealthSolve tHealthSolve)
+    {
+        return tHealthSolveMapper.updateTHealthSolve(tHealthSolve);
+    }
+
+    /**
+     * 批量删除健康告警处理
+     * 
+     * @param ids 需要删除的健康告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTHealthSolveByIds(Integer[] ids)
+    {
+        return tHealthSolveMapper.deleteTHealthSolveByIds(ids);
+    }
+
+    /**
+     * 删除健康告警处理信息
+     * 
+     * @param id 健康告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTHealthSolveById(Integer id)
+    {
+        return tHealthSolveMapper.deleteTHealthSolveById(id);
+    }
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOtherSolveServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.TOtherSolveMapper;
+import com.ruoyi.system.domain.TOtherSolve;
+import com.ruoyi.system.service.ITOtherSolveService;
+
+/**
+ * 其他告警处理Service业务层处理
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@Service
+public class TOtherSolveServiceImpl implements ITOtherSolveService 
+{
+    @Autowired
+    private TOtherSolveMapper tOtherSolveMapper;
+
+    /**
+     * 查询其他告警处理
+     * 
+     * @param id 其他告警处理主键
+     * @return 其他告警处理
+     */
+    @Override
+    public TOtherSolve selectTOtherSolveById(Integer id)
+    {
+        return tOtherSolveMapper.selectTOtherSolveById(id);
+    }
+
+    /**
+     * 查询其他告警处理列表
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 其他告警处理
+     */
+    @Override
+    public List<TOtherSolve> selectTOtherSolveList(TOtherSolve tOtherSolve)
+    {
+        return tOtherSolveMapper.selectTOtherSolveList(tOtherSolve);
+    }
+
+    /**
+     * 新增其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    @Override
+    public int insertTOtherSolve(TOtherSolve tOtherSolve)
+    {
+        tOtherSolve.setCreateTime(DateUtils.getNowDate());
+        return tOtherSolveMapper.insertTOtherSolve(tOtherSolve);
+    }
+
+    /**
+     * 修改其他告警处理
+     * 
+     * @param tOtherSolve 其他告警处理
+     * @return 结果
+     */
+    @Override
+    public int updateTOtherSolve(TOtherSolve tOtherSolve)
+    {
+        return tOtherSolveMapper.updateTOtherSolve(tOtherSolve);
+    }
+
+    /**
+     * 批量删除其他告警处理
+     * 
+     * @param ids 需要删除的其他告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTOtherSolveByIds(Integer[] ids)
+    {
+        return tOtherSolveMapper.deleteTOtherSolveByIds(ids);
+    }
+
+    /**
+     * 删除其他告警处理信息
+     * 
+     * @param id 其他告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTOtherSolveById(Integer id)
+    {
+        return tOtherSolveMapper.deleteTOtherSolveById(id);
+    }
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TRailSolveServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.TRailSolveMapper;
+import com.ruoyi.system.domain.TRailSolve;
+import com.ruoyi.system.service.ITRailSolveService;
+
+/**
+ * 围栏告警处理Service业务层处理
+ * 
+ * @author zhengjie
+ * @date 2023-09-09
+ */
+@Service
+public class TRailSolveServiceImpl implements ITRailSolveService 
+{
+    @Autowired
+    private TRailSolveMapper tRailSolveMapper;
+
+    /**
+     * 查询围栏告警处理
+     * 
+     * @param id 围栏告警处理主键
+     * @return 围栏告警处理
+     */
+    @Override
+    public TRailSolve selectTRailSolveById(Integer id)
+    {
+        return tRailSolveMapper.selectTRailSolveById(id);
+    }
+
+    /**
+     * 查询围栏告警处理列表
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 围栏告警处理
+     */
+    @Override
+    public List<TRailSolve> selectTRailSolveList(TRailSolve tRailSolve)
+    {
+        return tRailSolveMapper.selectTRailSolveList(tRailSolve);
+    }
+
+    /**
+     * 新增围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    @Override
+    public int insertTRailSolve(TRailSolve tRailSolve)
+    {
+        tRailSolve.setCreateTime(DateUtils.getNowDate());
+        return tRailSolveMapper.insertTRailSolve(tRailSolve);
+    }
+
+    /**
+     * 修改围栏告警处理
+     * 
+     * @param tRailSolve 围栏告警处理
+     * @return 结果
+     */
+    @Override
+    public int updateTRailSolve(TRailSolve tRailSolve)
+    {
+        return tRailSolveMapper.updateTRailSolve(tRailSolve);
+    }
+
+    /**
+     * 批量删除围栏告警处理
+     * 
+     * @param ids 需要删除的围栏告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTRailSolveByIds(Integer[] ids)
+    {
+        return tRailSolveMapper.deleteTRailSolveByIds(ids);
+    }
+
+    /**
+     * 删除围栏告警处理信息
+     * 
+     * @param id 围栏告警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTRailSolveById(Integer id)
+    {
+        return tRailSolveMapper.deleteTRailSolveById(id);
+    }
+}

+ 95 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSosSolveServiceImpl.java

@@ -0,0 +1,95 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.TSosSolveMapper;
+import com.ruoyi.system.domain.TSosSolve;
+import com.ruoyi.system.service.ITSosSolveService;
+
+/**
+ * SOS预警处理Service业务层处理
+ * 
+ * @author zhengjie
+ * @date 2023-09-08
+ */
+@Service
+public class TSosSolveServiceImpl implements ITSosSolveService 
+{
+    @Autowired
+    private TSosSolveMapper tSosSolveMapper;
+
+    /**
+     * 查询SOS预警处理
+     * 
+     * @param id SOS预警处理主键
+     * @return SOS预警处理
+     */
+    @Override
+    public TSosSolve selectTSosSolveById(Integer id)
+    {
+        return tSosSolveMapper.selectTSosSolveById(id);
+    }
+
+    /**
+     * 查询SOS预警处理列表
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return SOS预警处理
+     */
+    @Override
+    public List<TSosSolve> selectTSosSolveList(TSosSolve tSosSolve)
+    {
+        return tSosSolveMapper.selectTSosSolveList(tSosSolve);
+    }
+
+    /**
+     * 新增SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    @Override
+    public int insertTSosSolve(TSosSolve tSosSolve)
+    {
+        tSosSolve.setCreateTime(DateUtils.getNowDate());
+        return tSosSolveMapper.insertTSosSolve(tSosSolve);
+    }
+
+    /**
+     * 修改SOS预警处理
+     * 
+     * @param tSosSolve SOS预警处理
+     * @return 结果
+     */
+    @Override
+    public int updateTSosSolve(TSosSolve tSosSolve)
+    {
+        return tSosSolveMapper.updateTSosSolve(tSosSolve);
+    }
+
+    /**
+     * 批量删除SOS预警处理
+     * 
+     * @param ids 需要删除的SOS预警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTSosSolveByIds(Integer[] ids)
+    {
+        return tSosSolveMapper.deleteTSosSolveByIds(ids);
+    }
+
+    /**
+     * 删除SOS预警处理信息
+     * 
+     * @param id SOS预警处理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTSosSolveById(Integer id)
+    {
+        return tSosSolveMapper.deleteTSosSolveById(id);
+    }
+}

+ 57 - 19
ruoyi-system/src/main/java/com/ruoyi/system/timing/CallPoliceTiming.java

@@ -1,6 +1,7 @@
 package com.ruoyi.system.timing;
 
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.domain.TShouhuanAlarmList;
 import com.ruoyi.system.domain.TShouhuanInfo;
 import com.ruoyi.system.domain.dto.SettingDto;
@@ -40,17 +41,26 @@ public class CallPoliceTiming {
     public void checkCallPolice(){
 
         List<TShouhuanInfo> tShouhuanInfos = tShouhuanInfoMapper.selectTShouhuanInfo();
+        String shouhuan_body_max = tDeviceListMapper.selectshouhuan("shouhuan_body_max");
+        String shouhuan_blood_high_max = tDeviceListMapper.selectshouhuan("shouhuan_blood_high_max");
+        String shouhuan_blood_high_min = tDeviceListMapper.selectshouhuan("shouhuan_blood_high_min");
+        String shouhuan_heart_max = tDeviceListMapper.selectshouhuan("shouhuan_heart_max");
+        String shouhuan_oxygen_max = tDeviceListMapper.selectshouhuan("shouhuan_oxygen_max");
 
         for (TShouhuanInfo info : tShouhuanInfos){
-            if (info.getTemp()>Integer.parseInt(tDeviceListMapper.selectshouhuan("shouhuan_body_max"))){
+            if (info.getTemp()>Integer.parseInt(shouhuan_body_max)){
                 tShouhuanAlarmListMapper.insertTShouhuanAlarmList(saveInfo(info,tempalarmType,alarmFromType));
-            }else if(info.getBloodHeightPressure()>Integer.parseInt(tDeviceListMapper.selectshouhuan("shouhuan_blood_high_max"))){
+            }
+            if(info.getBloodHeightPressure()<Integer.parseInt(shouhuan_blood_high_max)){
                 tShouhuanAlarmListMapper.insertTShouhuanAlarmList(saveInfo(info,bloodalarmType,alarmFromType));
-            }else if(info.getBloodLowPressure()>Integer.parseInt(tDeviceListMapper.selectshouhuan("shouhuan_blood_high_min"))){
+            }
+            if(info.getBloodLowPressure()>Integer.parseInt(shouhuan_blood_high_min)){
                 tShouhuanAlarmListMapper.insertTShouhuanAlarmList(saveInfo(info,bloodalarmType,alarmFromType));
-            }else if(info.getHeartRate()>Integer.parseInt(tDeviceListMapper.selectshouhuan("shouhuan_heart_max"))){
+            }
+            if(info.getHeartRate()>Integer.parseInt(shouhuan_heart_max)){
                 tShouhuanAlarmListMapper.insertTShouhuanAlarmList(saveInfo(info,heartalarmType,alarmFromType));
-            }else if(info.getOxygen()>Integer.parseInt(tDeviceListMapper.selectshouhuan("shouhuan_oxygen_max"))){
+            }
+            if(info.getOxygen()>Integer.parseInt(shouhuan_oxygen_max)){
                 tShouhuanAlarmListMapper.insertTShouhuanAlarmList(saveInfo(info,oxygenalarmType,alarmFromType));
             }
         }
@@ -58,21 +68,49 @@ public class CallPoliceTiming {
 
     public TShouhuanAlarmList saveInfo(TShouhuanInfo info, Integer heartalarmType, Integer alarmFromType){
         TShouhuanAlarmList tShouhuanAlarmList = new TShouhuanAlarmList();
-        tShouhuanAlarmList.setFacilityId(info.getFacilityId());
-        tShouhuanAlarmList.setShinfoId(info.getId());
-        tShouhuanAlarmList.setDeviceIdCode(info.getDeviceIdCode());
-        tShouhuanAlarmList.setGpsLong(info.getGpsLong());
-        tShouhuanAlarmList.setGpsLat(info.getGpsLat());
-        tShouhuanAlarmList.setSpeed(info.getSpeed());
-        tShouhuanAlarmList.setDirection(info.getDirection());
-        tShouhuanAlarmList.setPoster(info.getPoster());
-        tShouhuanAlarmList.setElectricQuantity(info.getElectricQuantity());
-        tShouhuanAlarmList.setStepNumber(info.getStepNumber());
-        tShouhuanAlarmList.setRollNumber(info.getRollNumber());
-        tShouhuanAlarmList.setAlarmType(heartalarmType);
-        tShouhuanAlarmList.setTerminalStatus(info.getTerminalStatus());
+        if(StringUtils.isNotNull(info.getFacilityId())){
+            tShouhuanAlarmList.setFacilityId(info.getFacilityId());
+        }
+        if(StringUtils.isNotNull(info.getId())){
+            tShouhuanAlarmList.setShinfoId(info.getId());
+        }
+        if(StringUtils.isNotNull(info.getDeviceIdCode())){
+            tShouhuanAlarmList.setDeviceIdCode(info.getDeviceIdCode());
+        }
+        if(StringUtils.isNotNull(info.getGpsLong())){
+            tShouhuanAlarmList.setGpsLong(info.getGpsLong());
+        }
+        if(StringUtils.isNotNull(info.getGpsLat())){
+            tShouhuanAlarmList.setGpsLat(info.getGpsLat());
+        }
+        if(StringUtils.isNotNull(info.getSpeed())){
+            tShouhuanAlarmList.setSpeed(info.getSpeed());
+        }
+        if(StringUtils.isNotNull(info.getDirection())){
+            tShouhuanAlarmList.setDirection(info.getDirection());
+        }
+        if(StringUtils.isNotNull(info.getPoster())){
+            tShouhuanAlarmList.setPoster(info.getPoster());
+        }
+        if(StringUtils.isNotNull(info.getElectricQuantity())){
+            tShouhuanAlarmList.setElectricQuantity(info.getElectricQuantity());
+        }
+        if(StringUtils.isNotNull(info.getStepNumber())){
+            tShouhuanAlarmList.setStepNumber(info.getStepNumber());
+        }
+        if(StringUtils.isNotNull(info.getRollNumber())){
+            tShouhuanAlarmList.setRollNumber(info.getRollNumber());
+        }
+        if(StringUtils.isNotNull(heartalarmType)){
+            tShouhuanAlarmList.setAlarmType(heartalarmType);
+        }
+        if(StringUtils.isNotNull(info.getTerminalStatus())){
+            tShouhuanAlarmList.setTerminalStatus(info.getTerminalStatus());
+        }
         tShouhuanAlarmList.setCreateTime(DateUtils.getNowDate());
-        tShouhuanAlarmList.setAlarmFromType(alarmFromType);
+        if(StringUtils.isNotNull(alarmFromType)){
+            tShouhuanAlarmList.setAlarmFromType(alarmFromType);
+        }
         return tShouhuanAlarmList;
     }
 }

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/TFallSolveMapper.xml

@@ -0,0 +1,101 @@
+<?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.system.mapper.TFallSolveMapper">
+    
+    <resultMap type="TFallSolve" id="TFallSolveResult">
+        <result property="id"    column="id"    />
+        <result property="aid"    column="aid"    />
+        <result property="uid"    column="uid"    />
+        <result property="userid"    column="userid"    />
+        <result property="deviceIdCode"    column="device_id_code"    />
+        <result property="alarmMsg"    column="alarm_msg"    />
+        <result property="solve_status"    column="solve_status"    />
+        <result property="serviceUserid"    column="service_userid"    />
+        <result property="msg"    column="msg"    />
+        <result property="createtime"    column="createtime"    />
+        <result property="name"    column="name"    />
+        <result property="tel_one"    column="tel_one"    />
+        <result property="device_model"    column="device_model"    />
+        <result property="device_id_code"    column="device_id_code"    />
+        <result property="alarm_type"    column="alarm_type"    />
+        <result property="address_desc"    column="address_desc"    />
+        <result property="store_name"    column="store_name"    />
+        <result property="gps_long"    column="gps_long"    />
+        <result property="gps_lat"    column="gps_lat"    />
+    </resultMap>
+
+    <sql id="selectTFallSolveVo">
+        select id, userid, device_id_code, alarm_msg, solve_status, service_userid, msg, createtime, alarmid from t_fall_solve
+    </sql>
+
+    <select id="selectTFallSolveList" parameterType="TFallSolve" resultMap="TFallSolveResult">
+        SELECT a.id as uid, d.id as aid,a.name,a.tel_one,b.store_name,c.device_model,d.device_id_code,d.alarm_type,d.createtime,e.address_desc,d.gps_long,d.gps_lat,f.id,f.userid,f.alarm_msg,f.solve_status,f.msg FROM `t_user_profile` a
+        left join t_service_manage b on a.serviceid=b.id
+        left join t_device_list c on a.id=c.userid
+        left join t_shouhuan_alarm_list d on d.device_id_code=c.device_id
+        left join t_shouhuan_info e on e.id=d.shinfo_id
+        left join t_sos_solve f on f.alarmid=d.id
+        <where>
+            <if test="name != null  and name != ''"> and a.name = #{name}</if>
+            <if test="solve_status != null"> and f.solve_status = #{solve_status}</if>
+            and d.alarm_type=21
+        </where>
+    </select>
+    
+    <select id="selectTFallSolveById" parameterType="Integer" resultMap="TFallSolveResult">
+        <include refid="selectTFallSolveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTFallSolve" parameterType="TFallSolve" useGeneratedKeys="true" keyProperty="id">
+        insert into t_fall_solve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="uid != null">userid,</if>
+            <if test="deviceIdCode != null">device_id_code,</if>
+            <if test="alarmMsg != null">alarm_msg,</if>
+            <if test="solve_status != null">solve_status,</if>
+            <if test="serviceUserid != null">service_userid,</if>
+            <if test="msg != null">msg,</if>
+            <if test="createTime != null">createtime,</if>
+            <if test="aid != null">alarmid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="uid != null">#{uid},</if>
+            <if test="deviceIdCode != null">#{deviceIdCode},</if>
+            <if test="alarmMsg != null">#{alarmMsg},</if>
+            <if test="solve_status != null">#{solve_status},</if>
+            <if test="serviceUserid != null">#{serviceUserid},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="aid != null">#{aid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTFallSolve" parameterType="TFallSolve">
+        update t_fall_solve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="deviceIdCode != null">device_id_code = #{deviceIdCode},</if>
+            <if test="alarmMsg != null">alarm_msg = #{alarmMsg},</if>
+            <if test="solveStatus != null">solve_status = #{solveStatus},</if>
+            <if test="serviceUserid != null">service_userid = #{serviceUserid},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="createTime != null">createtime = #{createTime},</if>
+            <if test="alarmid != null">alarmid = #{alarmid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTFallSolveById" parameterType="Integer">
+        delete from t_fall_solve where id = #{id}
+    </delete>
+
+    <delete id="deleteTFallSolveByIds" parameterType="String">
+        delete from t_fall_solve where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/THealthSolveMapper.xml

@@ -0,0 +1,101 @@
+<?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.system.mapper.THealthSolveMapper">
+    
+    <resultMap type="THealthSolve" id="THealthSolveResult">
+        <result property="id"    column="id"    />
+        <result property="aid"    column="aid"    />
+        <result property="uid"    column="uid"    />
+        <result property="userid"    column="userid"    />
+        <result property="deviceIdCode"    column="device_id_code"    />
+        <result property="alarmMsg"    column="alarm_msg"    />
+        <result property="solve_status"    column="solve_status"    />
+        <result property="serviceUserid"    column="service_userid"    />
+        <result property="msg"    column="msg"    />
+        <result property="createtime"    column="createtime"    />
+        <result property="name"    column="name"    />
+        <result property="tel_one"    column="tel_one"    />
+        <result property="device_model"    column="device_model"    />
+        <result property="device_id_code"    column="device_id_code"    />
+        <result property="alarm_type"    column="alarm_type"    />
+        <result property="address_desc"    column="address_desc"    />
+        <result property="store_name"    column="store_name"    />
+        <result property="gps_long"    column="gps_long"    />
+        <result property="gps_lat"    column="gps_lat"    />
+    </resultMap>
+
+    <sql id="selectTHealthSolveVo">
+        select id, userid, device_id_code, alarm_msg, solve_status, service_userid, msg, createtime, alarmid from t_health_solve
+    </sql>
+
+    <select id="selectTHealthSolveList" parameterType="THealthSolve" resultMap="THealthSolveResult">
+        SELECT a.id as uid, d.id as aid,a.name,a.tel_one,b.store_name,c.device_model,d.device_id_code,d.alarm_type,d.createtime,e.address_desc,d.gps_long,d.gps_lat,f.id,f.userid,f.alarm_msg,f.solve_status,f.msg FROM `t_user_profile` a
+        left join t_service_manage b on a.serviceid=b.id
+        left join t_device_list c on a.id=c.userid
+        left join t_shouhuan_alarm_list d on d.device_id_code=c.device_id
+        left join t_shouhuan_info e on e.id=d.shinfo_id
+        left join t_sos_solve f on f.alarmid=d.id
+        <where>
+            <if test="name != null  and name != ''"> and a.name = #{name}</if>
+            <if test="solve_status != null"> and f.solve_status = #{solve_status}</if>
+            and d.alarm_type in (22,23,24,25)
+        </where>
+    </select>
+    
+    <select id="selectTHealthSolveById" parameterType="Integer" resultMap="THealthSolveResult">
+        <include refid="selectTHealthSolveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTHealthSolve" parameterType="THealthSolve" useGeneratedKeys="true" keyProperty="id">
+        insert into t_health_solve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="uid != null">userid,</if>
+            <if test="deviceIdCode != null">device_id_code,</if>
+            <if test="alarmMsg != null">alarm_msg,</if>
+            <if test="solve_status != null">solve_status,</if>
+            <if test="serviceUserid != null">service_userid,</if>
+            <if test="msg != null">msg,</if>
+            <if test="createTime != null">createtime,</if>
+            <if test="aid != null">alarmid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="uid != null">#{uid},</if>
+            <if test="deviceIdCode != null">#{deviceIdCode},</if>
+            <if test="alarmMsg != null">#{alarmMsg},</if>
+            <if test="solve_status != null">#{solve_status},</if>
+            <if test="serviceUserid != null">#{serviceUserid},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="aid != null">#{aid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTHealthSolve" parameterType="THealthSolve">
+        update t_health_solve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="deviceIdCode != null">device_id_code = #{deviceIdCode},</if>
+            <if test="alarmMsg != null">alarm_msg = #{alarmMsg},</if>
+            <if test="solveStatus != null">solve_status = #{solveStatus},</if>
+            <if test="serviceUserid != null">service_userid = #{serviceUserid},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="createTime != null">createtime = #{createTime},</if>
+            <if test="alarmid != null">alarmid = #{alarmid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTHealthSolveById" parameterType="Integer">
+        delete from t_health_solve where id = #{id}
+    </delete>
+
+    <delete id="deleteTHealthSolveByIds" parameterType="String">
+        delete from t_health_solve where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/TOtherSolveMapper.xml

@@ -0,0 +1,101 @@
+<?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.system.mapper.TOtherSolveMapper">
+    
+    <resultMap type="TOtherSolve" id="TOtherSolveResult">
+        <result property="id"    column="id"    />
+        <result property="aid"    column="aid"    />
+        <result property="uid"    column="uid"    />
+        <result property="userid"    column="userid"    />
+        <result property="deviceIdCode"    column="device_id_code"    />
+        <result property="alarmMsg"    column="alarm_msg"    />
+        <result property="solve_status"    column="solve_status"    />
+        <result property="serviceUserid"    column="service_userid"    />
+        <result property="msg"    column="msg"    />
+        <result property="createtime"    column="createtime"    />
+        <result property="name"    column="name"    />
+        <result property="tel_one"    column="tel_one"    />
+        <result property="device_model"    column="device_model"    />
+        <result property="device_id_code"    column="device_id_code"    />
+        <result property="alarm_type"    column="alarm_type"    />
+        <result property="address_desc"    column="address_desc"    />
+        <result property="store_name"    column="store_name"    />
+        <result property="gps_long"    column="gps_long"    />
+        <result property="gps_lat"    column="gps_lat"    />
+    </resultMap>
+
+    <sql id="selectTOtherSolveVo">
+        select id, userid, device_id_code, alarm_msg, solve_status, service_userid, msg, createtime, alarmid from t_other_solve
+    </sql>
+
+    <select id="selectTOtherSolveList" parameterType="TOtherSolve" resultMap="TOtherSolveResult">
+        SELECT a.id as uid, d.id as aid,a.name,a.tel_one,b.store_name,c.device_model,d.device_id_code,d.alarm_type,d.createtime,e.address_desc,d.gps_long,d.gps_lat,f.id,f.userid,f.alarm_msg,f.solve_status,f.msg FROM `t_user_profile` a
+        left join t_service_manage b on a.serviceid=b.id
+        left join t_device_list c on a.id=c.userid
+        left join t_shouhuan_alarm_list d on d.device_id_code=c.device_id
+        left join t_shouhuan_info e on e.id=d.shinfo_id
+        left join t_sos_solve f on f.alarmid=d.id
+        <where>
+            <if test="name != null  and name != ''"> and a.name = #{name}</if>
+            <if test="solve_status != null"> and f.solve_status = #{solve_status}</if>
+            and d.alarm_type not in (0,16,17,20,21,22,23,24,25)
+        </where>
+    </select>
+    
+    <select id="selectTOtherSolveById" parameterType="Integer" resultMap="TOtherSolveResult">
+        <include refid="selectTOtherSolveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTOtherSolve" parameterType="TOtherSolve" useGeneratedKeys="true" keyProperty="id">
+        insert into t_other_solve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="uid != null">userid,</if>
+            <if test="deviceIdCode != null">device_id_code,</if>
+            <if test="alarmMsg != null">alarm_msg,</if>
+            <if test="solve_status != null">solve_status,</if>
+            <if test="serviceUserid != null">service_userid,</if>
+            <if test="msg != null">msg,</if>
+            <if test="createTime != null">createtime,</if>
+            <if test="aid != null">alarmid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="uid != null">#{uid},</if>
+            <if test="deviceIdCode != null">#{deviceIdCode},</if>
+            <if test="alarmMsg != null">#{alarmMsg},</if>
+            <if test="solve_status != null">#{solve_status},</if>
+            <if test="serviceUserid != null">#{serviceUserid},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="aid != null">#{aid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTOtherSolve" parameterType="TOtherSolve">
+        update t_other_solve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="deviceIdCode != null">device_id_code = #{deviceIdCode},</if>
+            <if test="alarmMsg != null">alarm_msg = #{alarmMsg},</if>
+            <if test="solveStatus != null">solve_status = #{solveStatus},</if>
+            <if test="serviceUserid != null">service_userid = #{serviceUserid},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="createTime != null">createtime = #{createTime},</if>
+            <if test="alarmid != null">alarmid = #{alarmid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTOtherSolveById" parameterType="Integer">
+        delete from t_other_solve where id = #{id}
+    </delete>
+
+    <delete id="deleteTOtherSolveByIds" parameterType="String">
+        delete from t_other_solve where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/TRailSolveMapper.xml

@@ -0,0 +1,101 @@
+<?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.system.mapper.TRailSolveMapper">
+    
+    <resultMap type="TRailSolve" id="TRailSolveResult">
+        <result property="id"    column="id"    />
+        <result property="aid"    column="aid"    />
+        <result property="uid"    column="uid"    />
+        <result property="userid"    column="userid"    />
+        <result property="deviceIdCode"    column="device_id_code"    />
+        <result property="alarmMsg"    column="alarm_msg"    />
+        <result property="solve_status"    column="solve_status"    />
+        <result property="serviceUserid"    column="service_userid"    />
+        <result property="msg"    column="msg"    />
+        <result property="createtime"    column="createtime"    />
+        <result property="name"    column="name"    />
+        <result property="tel_one"    column="tel_one"    />
+        <result property="device_model"    column="device_model"    />
+        <result property="device_id_code"    column="device_id_code"    />
+        <result property="status_type"    column="status_type"    />
+        <result property="address_desc"    column="address_desc"    />
+        <result property="store_name"    column="store_name"    />
+        <result property="gps_long"    column="gps_long"    />
+        <result property="gps_lat"    column="gps_lat"    />
+    </resultMap>
+
+    <sql id="selectTRailSolveVo">
+        select id, userid, device_id_code, alarm_msg, solve_status, service_userid, msg, createtime, alarmid from t_rail_solve
+    </sql>
+
+    <select id="selectTRailSolveList" parameterType="TRailSolve" resultMap="TRailSolveResult">
+        SELECT a.id as uid, d.id as aid,a.name,a.tel_one,b.store_name,c.device_model,d.device_id_code,d.status_type,d.createtime,e.address_desc,d.gps_long,d.gps_lat,f.id,f.userid,f.alarm_msg,f.solve_status,f.msg FROM `t_user_profile` a
+        left join t_service_manage b on a.serviceid=b.id
+        left join t_device_list c on a.id=c.userid
+        left join t_shouhuan_alarm_list d on d.device_id_code=c.device_id
+        left join t_shouhuan_info e on e.id=d.shinfo_id
+        left join t_sos_solve f on f.alarmid=d.id
+        <where>
+            <if test="name != null  and name != ''"> and a.name = #{name}</if>
+            <if test="solve_status != null"> and f.solve_status = #{solve_status}</if>
+            and d.status_type=2
+        </where>
+    </select>
+    
+    <select id="selectTRailSolveById" parameterType="Integer" resultMap="TRailSolveResult">
+        <include refid="selectTRailSolveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTRailSolve" parameterType="TRailSolve" useGeneratedKeys="true" keyProperty="id">
+        insert into t_rail_solve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="uid != null">userid,</if>
+            <if test="deviceIdCode != null">device_id_code,</if>
+            <if test="alarmMsg != null">alarm_msg,</if>
+            <if test="solve_status != null">solve_status,</if>
+            <if test="serviceUserid != null">service_userid,</if>
+            <if test="msg != null">msg,</if>
+            <if test="createTime != null">createtime,</if>
+            <if test="aid != null">alarmid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="uid != null">#{uid},</if>
+            <if test="deviceIdCode != null">#{deviceIdCode},</if>
+            <if test="alarmMsg != null">#{alarmMsg},</if>
+            <if test="solve_status != null">#{solve_status},</if>
+            <if test="serviceUserid != null">#{serviceUserid},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="aid != null">#{aid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTRailSolve" parameterType="TRailSolve">
+        update t_rail_solve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="deviceIdCode != null">device_id_code = #{deviceIdCode},</if>
+            <if test="alarmMsg != null">alarm_msg = #{alarmMsg},</if>
+            <if test="solveStatus != null">solve_status = #{solveStatus},</if>
+            <if test="serviceUserid != null">service_userid = #{serviceUserid},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="createTime != null">createtime = #{createTime},</if>
+            <if test="alarmid != null">alarmid = #{alarmid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTRailSolveById" parameterType="Integer">
+        delete from t_rail_solve where id = #{id}
+    </delete>
+
+    <delete id="deleteTRailSolveByIds" parameterType="String">
+        delete from t_rail_solve where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 101 - 0
ruoyi-system/src/main/resources/mapper/system/TSosSolveMapper.xml

@@ -0,0 +1,101 @@
+<?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.system.mapper.TSosSolveMapper">
+    
+    <resultMap type="TSosSolve" id="TSosSolveResult">
+        <result property="id"    column="id"    />
+        <result property="aid"    column="aid"    />
+        <result property="uid"    column="uid"    />
+        <result property="userid"    column="userid"    />
+        <result property="deviceIdCode"    column="device_id_code"    />
+        <result property="alarmMsg"    column="alarm_msg"    />
+        <result property="solve_status"    column="solve_status"    />
+        <result property="serviceUserid"    column="service_userid"    />
+        <result property="msg"    column="msg"    />
+        <result property="createtime"    column="createtime"    />
+        <result property="name"    column="name"    />
+        <result property="tel_one"    column="tel_one"    />
+        <result property="device_model"    column="device_model"    />
+        <result property="device_id_code"    column="device_id_code"    />
+        <result property="alarm_type"    column="alarm_type"    />
+        <result property="address_desc"    column="address_desc"    />
+        <result property="store_name"    column="store_name"    />
+        <result property="gps_long"    column="gps_long"    />
+        <result property="gps_lat"    column="gps_lat"    />
+    </resultMap>
+
+    <sql id="selectTSosSolveVo">
+        select id, userid, device_id_code, alarm_msg, solve_status, service_userid, msg, createtime from t_sos_solve
+    </sql>
+
+    <select id="selectTSosSolveList" parameterType="TSosSolve" resultMap="TSosSolveResult">
+        SELECT a.id as uid, d.id as aid,a.name,a.tel_one,b.store_name,c.device_model,d.device_id_code,d.alarm_type,d.createtime,e.address_desc,d.gps_long,d.gps_lat,f.id,f.userid,f.alarm_msg,f.solve_status,f.msg FROM `t_user_profile` a
+        left join t_service_manage b on a.serviceid=b.id
+        left join t_device_list c on a.id=c.userid
+        left join t_shouhuan_alarm_list d on d.device_id_code=c.device_id
+        left join t_shouhuan_info e on e.id=d.shinfo_id
+        left join t_sos_solve f on f.alarmid=d.id
+        <where>
+            <if test="name != null  and name != ''"> and a.name = #{name}</if>
+            <if test="solve_status != null"> and f.solve_status = #{solve_status}</if>
+            and d.alarm_type=16
+        </where>
+    </select>
+    
+    <select id="selectTSosSolveById" parameterType="Integer" resultMap="TSosSolveResult">
+        <include refid="selectTSosSolveVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertTSosSolve" parameterType="TSosSolve" useGeneratedKeys="true" keyProperty="id">
+        insert into t_sos_solve
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="uid != null">userid,</if>
+            <if test="deviceIdCode != null">device_id_code,</if>
+            <if test="alarmMsg != null">alarm_msg,</if>
+            <if test="solve_status != null">solve_status,</if>
+            <if test="serviceUserid != null">service_userid,</if>
+            <if test="msg != null">msg,</if>
+            <if test="createTime != null">createtime,</if>
+            <if test="aid != null">alarmid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="uid != null">#{uid},</if>
+            <if test="deviceIdCode != null">#{deviceIdCode},</if>
+            <if test="alarmMsg != null">#{alarmMsg},</if>
+            <if test="solve_status != null">#{solve_status},</if>
+            <if test="serviceUserid != null">#{serviceUserid},</if>
+            <if test="msg != null">#{msg},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="aid != null">#{aid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTSosSolve" parameterType="TSosSolve">
+        update t_sos_solve
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="userid != null">userid = #{userid},</if>
+            <if test="deviceIdCode != null">device_id_code = #{deviceIdCode},</if>
+            <if test="alarmMsg != null">alarm_msg = #{alarmMsg},</if>
+            <if test="solveStatus != null">solve_status = #{solveStatus},</if>
+            <if test="serviceUserid != null">service_userid = #{serviceUserid},</if>
+            <if test="msg != null">msg = #{msg},</if>
+            <if test="createTime != null">createtime = #{createTime},</if>
+            <if test="alarmid != null">alarmid = #{alarmid},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteTSosSolveById" parameterType="Integer">
+        delete from t_sos_solve where id = #{id}
+    </delete>
+
+    <delete id="deleteTSosSolveByIds" parameterType="String">
+        delete from t_sos_solve where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 44 - 0
ruoyi-ui/src/api/system/fallsolve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询跌倒告警列表
+export function listFallsolve(query) {
+  return request({
+    url: '/system/fallsolve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询跌倒告警详细
+export function getFallsolve(id) {
+  return request({
+    url: '/system/fallsolve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增跌倒告警
+export function addFallsolve(data) {
+  return request({
+    url: '/system/fallsolve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改跌倒告警
+export function updateFallsolve(data) {
+  return request({
+    url: '/system/fallsolve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除跌倒告警
+export function delFallsolve(id) {
+  return request({
+    url: '/system/fallsolve/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ruoyi-ui/src/api/system/healthsolve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询健康告警处理列表
+export function listHealthsolve(query) {
+  return request({
+    url: '/system/healthsolve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询健康告警处理详细
+export function getHealthsolve(id) {
+  return request({
+    url: '/system/healthsolve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增健康告警处理
+export function addHealthsolve(data) {
+  return request({
+    url: '/system/healthsolve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改健康告警处理
+export function updateHealthsolve(data) {
+  return request({
+    url: '/system/healthsolve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除健康告警处理
+export function delHealthsolve(id) {
+  return request({
+    url: '/system/healthsolve/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ruoyi-ui/src/api/system/othersolve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询其他告警处理列表
+export function listOthersolve(query) {
+  return request({
+    url: '/system/othersolve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询其他告警处理详细
+export function getOthersolve(id) {
+  return request({
+    url: '/system/othersolve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增其他告警处理
+export function addOthersolve(data) {
+  return request({
+    url: '/system/othersolve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改其他告警处理
+export function updateOthersolve(data) {
+  return request({
+    url: '/system/othersolve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除其他告警处理
+export function delOthersolve(id) {
+  return request({
+    url: '/system/othersolve/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ruoyi-ui/src/api/system/railsolve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询围栏告警处理列表
+export function listRailsolve(query) {
+  return request({
+    url: '/system/railsolve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询围栏告警处理详细
+export function getRailsolve(id) {
+  return request({
+    url: '/system/railsolve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增围栏告警处理
+export function addRailsolve(data) {
+  return request({
+    url: '/system/railsolve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改围栏告警处理
+export function updateRailsolve(data) {
+  return request({
+    url: '/system/railsolve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除围栏告警处理
+export function delRailsolve(id) {
+  return request({
+    url: '/system/railsolve/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
ruoyi-ui/src/api/system/solve.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询SOS预警处理列表
+export function listSolve(query) {
+  return request({
+    url: '/system/solve/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询SOS预警处理详细
+export function getSolve(id) {
+  return request({
+    url: '/system/solve/' + id,
+    method: 'get'
+  })
+}
+
+// 新增SOS预警处理
+export function addSolve(data) {
+  return request({
+    url: '/system/solve',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改SOS预警处理
+export function updateSolve(data) {
+  return request({
+    url: '/system/solve',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除SOS预警处理
+export function delSolve(id) {
+  return request({
+    url: '/system/solve/' + id,
+    method: 'delete'
+  })
+}

+ 333 - 0
ruoyi-ui/src/views/system/fallsolve/index.vue

@@ -0,0 +1,333 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="告警id" prop="alarmid">
+        <el-input
+          v-model="queryParams.alarmid"
+          placeholder="请输入告警id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:fallsolve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:fallsolve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:fallsolve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:fallsolve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="fallsolveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="告警id" align="center" prop="alarmid" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:fallsolve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:fallsolve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改跌倒告警对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+        <el-form-item label="告警id" prop="alarmid">
+          <el-input v-model="form.alarmid" placeholder="请输入告警id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listFallsolve, getFallsolve, delFallsolve, addFallsolve, updateFallsolve } from "@/api/system/fallsolve";
+
+export default {
+  name: "Fallsolve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 跌倒告警表格数据
+      fallsolveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询跌倒告警列表 */
+    getList() {
+      this.loading = true;
+      listFallsolve(this.queryParams).then(response => {
+        this.fallsolveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加跌倒告警";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getFallsolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改跌倒告警";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateFallsolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addFallsolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除跌倒告警编号为"' + ids + '"的数据项?').then(function() {
+        return delFallsolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/fallsolve/export', {
+        ...this.queryParams
+      }, `fallsolve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 333 - 0
ruoyi-ui/src/views/system/healthsolve/index.vue

@@ -0,0 +1,333 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="告警id" prop="alarmid">
+        <el-input
+          v-model="queryParams.alarmid"
+          placeholder="请输入告警id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:healthsolve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:healthsolve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:healthsolve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:healthsolve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="healthsolveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="告警id" align="center" prop="alarmid" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:healthsolve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:healthsolve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改健康告警处理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+        <el-form-item label="告警id" prop="alarmid">
+          <el-input v-model="form.alarmid" placeholder="请输入告警id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listHealthsolve, getHealthsolve, delHealthsolve, addHealthsolve, updateHealthsolve } from "@/api/system/healthsolve";
+
+export default {
+  name: "Healthsolve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 健康告警处理表格数据
+      healthsolveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询健康告警处理列表 */
+    getList() {
+      this.loading = true;
+      listHealthsolve(this.queryParams).then(response => {
+        this.healthsolveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加健康告警处理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getHealthsolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改健康告警处理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateHealthsolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addHealthsolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除健康告警处理编号为"' + ids + '"的数据项?').then(function() {
+        return delHealthsolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/healthsolve/export', {
+        ...this.queryParams
+      }, `healthsolve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 333 - 0
ruoyi-ui/src/views/system/othersolve/index.vue

@@ -0,0 +1,333 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="告警id" prop="alarmid">
+        <el-input
+          v-model="queryParams.alarmid"
+          placeholder="请输入告警id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:othersolve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:othersolve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:othersolve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:othersolve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="othersolveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="告警id" align="center" prop="alarmid" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:othersolve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:othersolve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改其他告警处理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+        <el-form-item label="告警id" prop="alarmid">
+          <el-input v-model="form.alarmid" placeholder="请输入告警id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listOthersolve, getOthersolve, delOthersolve, addOthersolve, updateOthersolve } from "@/api/system/othersolve";
+
+export default {
+  name: "Othersolve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 其他告警处理表格数据
+      othersolveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询其他告警处理列表 */
+    getList() {
+      this.loading = true;
+      listOthersolve(this.queryParams).then(response => {
+        this.othersolveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加其他告警处理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getOthersolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改其他告警处理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateOthersolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addOthersolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除其他告警处理编号为"' + ids + '"的数据项?').then(function() {
+        return delOthersolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/othersolve/export', {
+        ...this.queryParams
+      }, `othersolve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 333 - 0
ruoyi-ui/src/views/system/railsolve/index.vue

@@ -0,0 +1,333 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="告警id" prop="alarmid">
+        <el-input
+          v-model="queryParams.alarmid"
+          placeholder="请输入告警id"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:railsolve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:railsolve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:railsolve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:railsolve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="railsolveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="告警id" align="center" prop="alarmid" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:railsolve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:railsolve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改围栏告警处理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+        <el-form-item label="告警id" prop="alarmid">
+          <el-input v-model="form.alarmid" placeholder="请输入告警id" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRailsolve, getRailsolve, delRailsolve, addRailsolve, updateRailsolve } from "@/api/system/railsolve";
+
+export default {
+  name: "Railsolve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 围栏告警处理表格数据
+      railsolveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询围栏告警处理列表 */
+    getList() {
+      this.loading = true;
+      listRailsolve(this.queryParams).then(response => {
+        this.railsolveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null,
+        alarmid: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加围栏告警处理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRailsolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改围栏告警处理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRailsolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRailsolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除围栏告警处理编号为"' + ids + '"的数据项?').then(function() {
+        return delRailsolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/railsolve/export', {
+        ...this.queryParams
+      }, `railsolve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 319 - 0
ruoyi-ui/src/views/system/solve/index.vue

@@ -0,0 +1,319 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="用户ID" prop="userid">
+        <el-input
+          v-model="queryParams.userid"
+          placeholder="请输入用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="设备标识ID" prop="deviceIdCode">
+        <el-input
+          v-model="queryParams.deviceIdCode"
+          placeholder="请输入设备标识ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="告警内容" prop="alarmMsg">
+        <el-input
+          v-model="queryParams.alarmMsg"
+          placeholder="请输入告警内容"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="服务人员用户ID" prop="serviceUserid">
+        <el-input
+          v-model="queryParams.serviceUserid"
+          placeholder="请输入服务人员用户ID"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间记录" prop="msg">
+        <el-input
+          v-model="queryParams.msg"
+          placeholder="请输入时间记录"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="创建时间" prop="createTime">
+        <el-date-picker clearable
+          v-model="queryParams.createTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择创建时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['system:solve:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['system:solve:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['system:solve:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['system:solve:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="solveList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="id" align="center" prop="id" />
+      <el-table-column label="用户ID" align="center" prop="userid" />
+      <el-table-column label="设备标识ID" align="center" prop="deviceIdCode" />
+      <el-table-column label="告警内容" align="center" prop="alarmMsg" />
+      <el-table-column label="0未处理,1已处理" align="center" prop="solveStatus" />
+      <el-table-column label="服务人员用户ID" align="center" prop="serviceUserid" />
+      <el-table-column label="时间记录" align="center" prop="msg" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:solve:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['system:solve:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改SOS预警处理对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="用户ID" prop="userid">
+          <el-input v-model="form.userid" placeholder="请输入用户ID" />
+        </el-form-item>
+        <el-form-item label="设备标识ID" prop="deviceIdCode">
+          <el-input v-model="form.deviceIdCode" placeholder="请输入设备标识ID" />
+        </el-form-item>
+        <el-form-item label="告警内容" prop="alarmMsg">
+          <el-input v-model="form.alarmMsg" placeholder="请输入告警内容" />
+        </el-form-item>
+        <el-form-item label="服务人员用户ID" prop="serviceUserid">
+          <el-input v-model="form.serviceUserid" placeholder="请输入服务人员用户ID" />
+        </el-form-item>
+        <el-form-item label="时间记录" prop="msg">
+          <el-input v-model="form.msg" placeholder="请输入时间记录" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSolve, getSolve, delSolve, addSolve, updateSolve } from "@/api/system/solve";
+
+export default {
+  name: "Solve",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // SOS预警处理表格数据
+      solveList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询SOS预警处理列表 */
+    getList() {
+      this.loading = true;
+      listSolve(this.queryParams).then(response => {
+        this.solveList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        userid: null,
+        deviceIdCode: null,
+        alarmMsg: null,
+        solveStatus: null,
+        serviceUserid: null,
+        msg: null,
+        createTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加SOS预警处理";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getSolve(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改SOS预警处理";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateSolve(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addSolve(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除SOS预警处理编号为"' + ids + '"的数据项?').then(function() {
+        return delSolve(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/solve/export', {
+        ...this.queryParams
+      }, `solve_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>