Browse Source

张浩---第二次提交:
告警管理模块taphole-warn异常记录子模块新增导出功能;
设备管理模块taphole-device新增5个子模块;

zhanghao 5 tháng trước cách đây
mục cha
commit
6483b45e70
70 tập tin đã thay đổi với 2886 bổ sung103 xóa
  1. 33 0
      taphole-admin/src/main/java/com/sckj/admin/controller/UploadController.java
  2. 8 0
      taphole-common/src/main/java/com/sckj/common/config/GlobalConfig.java
  3. 2 1
      taphole-common/src/main/java/com/sckj/common/enums/AlbumEnum.java
  4. 12 0
      taphole-common/src/main/java/com/sckj/common/plugin/storage/StorageDriver.java
  5. 69 0
      taphole-device/src/main/java/com/sckj/device/controller/TCameraController.java
  6. 69 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceController.java
  7. 1 1
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceFactoryController.java
  8. 69 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceLocationController.java
  9. 69 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceTypeController.java
  10. 69 0
      taphole-device/src/main/java/com/sckj/device/controller/TProtocolController.java
  11. 73 0
      taphole-device/src/main/java/com/sckj/device/entity/TCamera.java
  12. 58 0
      taphole-device/src/main/java/com/sckj/device/entity/TDevice.java
  13. 2 0
      taphole-device/src/main/java/com/sckj/device/entity/TDeviceFactory.java
  14. 58 0
      taphole-device/src/main/java/com/sckj/device/entity/TDeviceLocation.java
  15. 40 0
      taphole-device/src/main/java/com/sckj/device/entity/TDeviceType.java
  16. 54 0
      taphole-device/src/main/java/com/sckj/device/entity/TProtocol.java
  17. 13 0
      taphole-device/src/main/java/com/sckj/device/mapper/TCameraMapper.java
  18. 13 0
      taphole-device/src/main/java/com/sckj/device/mapper/TDeviceLocationMapper.java
  19. 13 0
      taphole-device/src/main/java/com/sckj/device/mapper/TDeviceMapper.java
  20. 13 0
      taphole-device/src/main/java/com/sckj/device/mapper/TDeviceTypeMapper.java
  21. 13 0
      taphole-device/src/main/java/com/sckj/device/mapper/TProtocolMapper.java
  22. 60 0
      taphole-device/src/main/java/com/sckj/device/service/ITCameraService.java
  23. 60 0
      taphole-device/src/main/java/com/sckj/device/service/ITDeviceLocationService.java
  24. 60 0
      taphole-device/src/main/java/com/sckj/device/service/ITDeviceService.java
  25. 60 0
      taphole-device/src/main/java/com/sckj/device/service/ITDeviceTypeService.java
  26. 60 0
      taphole-device/src/main/java/com/sckj/device/service/ITProtocolService.java
  27. 165 0
      taphole-device/src/main/java/com/sckj/device/service/impl/TCameraServiceImpl.java
  28. 42 33
      taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceFactoryServiceImpl.java
  29. 155 0
      taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceLocationServiceImpl.java
  30. 176 0
      taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceServiceImpl.java
  31. 141 0
      taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceTypeServiceImpl.java
  32. 151 0
      taphole-device/src/main/java/com/sckj/device/service/impl/TProtocolServiceImpl.java
  33. 61 0
      taphole-device/src/main/java/com/sckj/device/validate/TCameraCreateValidate.java
  34. 25 0
      taphole-device/src/main/java/com/sckj/device/validate/TCameraSearchValidate.java
  35. 63 0
      taphole-device/src/main/java/com/sckj/device/validate/TCameraUpdateValidate.java
  36. 29 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceCreateValidate.java
  37. 2 4
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactoryCreateValidate.java
  38. 0 6
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactorySearchValidate.java
  39. 2 2
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactoryUpdateValidate.java
  40. 45 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationCreateValidate.java
  41. 25 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationSearchValidate.java
  42. 53 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationUpdateValidate.java
  43. 25 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceSearchValidate.java
  44. 21 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeCreateValidate.java
  45. 19 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeSearchValidate.java
  46. 27 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeUpdateValidate.java
  47. 35 0
      taphole-device/src/main/java/com/sckj/device/validate/TDeviceUpdateValidate.java
  48. 37 0
      taphole-device/src/main/java/com/sckj/device/validate/TProtocolCreateValidate.java
  49. 25 0
      taphole-device/src/main/java/com/sckj/device/validate/TProtocolSearchValidate.java
  50. 43 0
      taphole-device/src/main/java/com/sckj/device/validate/TProtocolUpdateValidate.java
  51. 51 0
      taphole-device/src/main/java/com/sckj/device/vo/TCameraDetailVo.java
  52. 42 0
      taphole-device/src/main/java/com/sckj/device/vo/TCameraListedVo.java
  53. 30 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceDetailVo.java
  54. 43 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceListedVo.java
  55. 42 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceLocationDetailVo.java
  56. 39 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceLocationListedVo.java
  57. 24 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceTypeDetailVo.java
  58. 21 0
      taphole-device/src/main/java/com/sckj/device/vo/TDeviceTypeListedVo.java
  59. 36 0
      taphole-device/src/main/java/com/sckj/device/vo/TProtocolDetailVo.java
  60. 36 0
      taphole-device/src/main/java/com/sckj/device/vo/TProtocolListedVo.java
  61. 20 2
      taphole-warn/src/main/java/com/sckj/warn/controller/TExceptionLogController.java
  62. 11 0
      taphole-warn/src/main/java/com/sckj/warn/service/ITExceptionLogService.java
  63. 1 3
      taphole-warn/src/main/java/com/sckj/warn/service/impl/TAudioServiceImpl.java
  64. 59 8
      taphole-warn/src/main/java/com/sckj/warn/service/impl/TExceptionLogServiceImpl.java
  65. 0 6
      taphole-warn/src/main/java/com/sckj/warn/validate/TAudioCreateValidate.java
  66. 0 6
      taphole-warn/src/main/java/com/sckj/warn/validate/TAudioSearchValidate.java
  67. 0 11
      taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogCreateValidate.java
  68. 0 18
      taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogSearchValidate.java
  69. 13 0
      taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogDetailVo.java
  70. 0 2
      taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogListedVo.java

+ 33 - 0
taphole-admin/src/main/java/com/sckj/admin/controller/UploadController.java

@@ -130,4 +130,37 @@ public class UploadController {
         return AjaxResult.success(vo);
     }
 
+    @Log(title = "上传证书", requestType = RequestType.File)
+    @PostMapping("/certificate")
+    @ApiOperation(value="上传证书")
+    public AjaxResult<Object> uploadCertificate(HttpServletRequest request) {
+        MultipartFile multipartFile;
+        try {
+            multipartFile = ((MultipartRequest) request).getFile("file");
+        } catch (Exception e) {
+            throw new OperateException("请正确选择上传证书!");
+        }
+
+        if (multipartFile == null) {
+            throw new OperateException("请选择上传证书!");
+        }
+
+        StorageDriver storageDriver = new StorageDriver();
+        UploadFilesVo vo = storageDriver.upload(multipartFile, "certificate", AlbumEnum.Certificate.getCode());
+        String cid = StringUtils.isNotEmpty(request.getParameter("cid")) ? request.getParameter("cid") : "0";
+
+        Map<String, String> album = new LinkedHashMap<>();
+        album.put("cid", cid);
+        album.put("aid", String.valueOf(TapholeAdminThreadLocal.getAdminId()));
+        album.put("type", String.valueOf(AlbumEnum.Certificate.getCode()));
+        album.put("ext", vo.getExt());
+        album.put("size", vo.getSize().toString());
+        album.put("url", vo.getUrl());
+        album.put("name", vo.getName());
+        Integer id = iAlbumsService.albumAdd(album);
+
+        vo.setId(id);
+        return AjaxResult.success(vo);
+    }
+
 }

+ 8 - 0
taphole-common/src/main/java/com/sckj/common/config/GlobalConfig.java

@@ -47,4 +47,12 @@ public class GlobalConfig {
     public static Integer uploadAudioSize = 1024 * 1024 * 30;
     public static String[] uploadAudioExt = new String[] {"wav", "mp3", "ogg", "aac", "flav", "m4a"};
 
+    /**
+     * @author zhanghao
+     * 上传证书限制
+     * 上传证书扩展
+     */
+    public static Integer uploadCertificateSize = 1024 * 1024 * 30;
+    public static String[] uploadCertificateExt = new String[] {"txt", "doc", "docx", "pdf", "jpg", "png"};
+
 }

+ 2 - 1
taphole-common/src/main/java/com/sckj/common/enums/AlbumEnum.java

@@ -7,7 +7,8 @@ public enum AlbumEnum {
 
     IMAGE(10, "图片"),
     Video(20, "视频"),
-    Audio(30, "音频");
+    Audio(30, "音频"),
+    Certificate(40, "证书");
 
     /**
      * 构造方法

+ 12 - 0
taphole-common/src/main/java/com/sckj/common/plugin/storage/StorageDriver.java

@@ -138,6 +138,18 @@ public class StorageDriver {
                 throw new OperateException("上传视频不能超出限制:" + (GlobalConfig.uploadAudioSize / 1024 / 1024) + "M");
             }
         }
+        /**
+         * @author zhanghao
+         * 证书检查
+         */
+        else if (type == 40) {
+            if (!Arrays.asList(GlobalConfig.uploadCertificateExt).contains(fileExt)) {
+                throw new OperateException("不被支持的扩展:" + fileExt);
+            }
+            if (fileSize > GlobalConfig.uploadCertificateSize) {
+                throw new OperateException("上传视频不能超出限制:" + (GlobalConfig.uploadCertificateSize / 1024 / 1024) + "M");
+            }
+        }
     }
 
 }

+ 69 - 0
taphole-device/src/main/java/com/sckj/device/controller/TCameraController.java

@@ -0,0 +1,69 @@
+package com.sckj.device.controller;
+
+import com.sckj.common.aop.Log;
+import com.sckj.device.service.ITCameraService;
+import com.sckj.common.validate.commons.IdValidate;
+import com.sckj.device.validate.TCameraCreateValidate;
+import com.sckj.device.validate.TCameraUpdateValidate;
+import com.sckj.device.validate.TCameraSearchValidate;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.vo.TCameraListedVo;
+import com.sckj.device.vo.TCameraDetailVo;
+import com.sckj.common.core.AjaxResult;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validator.annotation.IDMust;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("api/camera")
+@Api(tags = "摄像头管理")
+public class TCameraController {
+
+    @Resource
+    ITCameraService iTCameraService;
+
+    @GetMapping("/list")
+    @ApiOperation(value="摄像头列表")
+    public AjaxResult<PageResult<TCameraListedVo>> list(@Validated PageValidate pageValidate,
+                                                     @Validated TCameraSearchValidate searchValidate) {
+        PageResult<TCameraListedVo> list = iTCameraService.list(pageValidate, searchValidate);
+        return AjaxResult.success(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value="摄像头详情")
+    public AjaxResult<TCameraDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
+        TCameraDetailVo detail = iTCameraService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "摄像头新增")
+    @PostMapping("/add")
+    @ApiOperation(value="摄像头新增")
+    public AjaxResult<Object> add(@Validated @RequestBody TCameraCreateValidate createValidate) {
+        iTCameraService.add(createValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "摄像头编辑")
+    @PostMapping("/edit")
+    @ApiOperation(value="摄像头编辑")
+    public AjaxResult<Object> edit(@Validated @RequestBody TCameraUpdateValidate updateValidate) {
+        iTCameraService.edit(updateValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "摄像头删除")
+    @PostMapping("/del")
+    @ApiOperation(value="摄像头删除")
+    public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
+        iTCameraService.del(idValidate.getId());
+        return AjaxResult.success();
+    }
+
+}

+ 69 - 0
taphole-device/src/main/java/com/sckj/device/controller/TDeviceController.java

@@ -0,0 +1,69 @@
+package com.sckj.device.controller;
+
+import com.sckj.common.aop.Log;
+import com.sckj.device.service.ITDeviceService;
+import com.sckj.common.validate.commons.IdValidate;
+import com.sckj.device.validate.TDeviceCreateValidate;
+import com.sckj.device.validate.TDeviceUpdateValidate;
+import com.sckj.device.validate.TDeviceSearchValidate;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.vo.TDeviceListedVo;
+import com.sckj.device.vo.TDeviceDetailVo;
+import com.sckj.common.core.AjaxResult;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validator.annotation.IDMust;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("api/device")
+@Api(tags = "设备编号管理")
+public class TDeviceController {
+
+    @Resource
+    ITDeviceService iTDeviceService;
+
+    @GetMapping("/list")
+    @ApiOperation(value="设备编号列表")
+    public AjaxResult<PageResult<TDeviceListedVo>> list(@Validated PageValidate pageValidate,
+                                                     @Validated TDeviceSearchValidate searchValidate) {
+        PageResult<TDeviceListedVo> list = iTDeviceService.list(pageValidate, searchValidate);
+        return AjaxResult.success(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value="设备编号详情")
+    public AjaxResult<TDeviceDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
+        TDeviceDetailVo detail = iTDeviceService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "设备编号新增")
+    @PostMapping("/add")
+    @ApiOperation(value="设备编号新增")
+    public AjaxResult<Object> add(@Validated @RequestBody TDeviceCreateValidate createValidate) {
+        iTDeviceService.add(createValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备编号编辑")
+    @PostMapping("/edit")
+    @ApiOperation(value="设备编号编辑")
+    public AjaxResult<Object> edit(@Validated @RequestBody TDeviceUpdateValidate updateValidate) {
+        iTDeviceService.edit(updateValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备编号删除")
+    @PostMapping("/del")
+    @ApiOperation(value="设备编号删除")
+    public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
+        iTDeviceService.del(idValidate.getId());
+        return AjaxResult.success();
+    }
+
+}

+ 1 - 1
taphole-device/src/main/java/com/sckj/device/controller/TDeviceFactoryController.java

@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 
 @RestController
-@RequestMapping("api/device")
+@RequestMapping("api/factory")
 @Api(tags = "设备厂家管理")
 public class TDeviceFactoryController {
 

+ 69 - 0
taphole-device/src/main/java/com/sckj/device/controller/TDeviceLocationController.java

@@ -0,0 +1,69 @@
+package com.sckj.device.controller;
+
+import com.sckj.common.aop.Log;
+import com.sckj.device.service.ITDeviceLocationService;
+import com.sckj.common.validate.commons.IdValidate;
+import com.sckj.device.validate.TDeviceLocationCreateValidate;
+import com.sckj.device.validate.TDeviceLocationUpdateValidate;
+import com.sckj.device.validate.TDeviceLocationSearchValidate;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.vo.TDeviceLocationListedVo;
+import com.sckj.device.vo.TDeviceLocationDetailVo;
+import com.sckj.common.core.AjaxResult;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validator.annotation.IDMust;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("api/location")
+@Api(tags = "设备位置管理")
+public class TDeviceLocationController {
+
+    @Resource
+    ITDeviceLocationService iTDeviceLocationService;
+
+    @GetMapping("/list")
+    @ApiOperation(value="设备位置列表")
+    public AjaxResult<PageResult<TDeviceLocationListedVo>> list(@Validated PageValidate pageValidate,
+                                                     @Validated TDeviceLocationSearchValidate searchValidate) {
+        PageResult<TDeviceLocationListedVo> list = iTDeviceLocationService.list(pageValidate, searchValidate);
+        return AjaxResult.success(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value="设备位置详情")
+    public AjaxResult<TDeviceLocationDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
+        TDeviceLocationDetailVo detail = iTDeviceLocationService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "设备位置新增")
+    @PostMapping("/add")
+    @ApiOperation(value="设备位置新增")
+    public AjaxResult<Object> add(@Validated @RequestBody TDeviceLocationCreateValidate createValidate) {
+        iTDeviceLocationService.add(createValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备位置编辑")
+    @PostMapping("/edit")
+    @ApiOperation(value="设备位置编辑")
+    public AjaxResult<Object> edit(@Validated @RequestBody TDeviceLocationUpdateValidate updateValidate) {
+        iTDeviceLocationService.edit(updateValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备位置删除")
+    @PostMapping("/del")
+    @ApiOperation(value="设备位置删除")
+    public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
+        iTDeviceLocationService.del(idValidate.getId());
+        return AjaxResult.success();
+    }
+
+}

+ 69 - 0
taphole-device/src/main/java/com/sckj/device/controller/TDeviceTypeController.java

@@ -0,0 +1,69 @@
+package com.sckj.device.controller;
+
+import com.sckj.common.aop.Log;
+import com.sckj.device.service.ITDeviceTypeService;
+import com.sckj.common.validate.commons.IdValidate;
+import com.sckj.device.validate.TDeviceTypeCreateValidate;
+import com.sckj.device.validate.TDeviceTypeUpdateValidate;
+import com.sckj.device.validate.TDeviceTypeSearchValidate;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.vo.TDeviceTypeListedVo;
+import com.sckj.device.vo.TDeviceTypeDetailVo;
+import com.sckj.common.core.AjaxResult;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validator.annotation.IDMust;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("api/type")
+@Api(tags = "设备类型管理")
+public class TDeviceTypeController {
+
+    @Resource
+    ITDeviceTypeService iTDeviceTypeService;
+
+    @GetMapping("/list")
+    @ApiOperation(value="设备类型列表")
+    public AjaxResult<PageResult<TDeviceTypeListedVo>> list(@Validated PageValidate pageValidate,
+                                                     @Validated TDeviceTypeSearchValidate searchValidate) {
+        PageResult<TDeviceTypeListedVo> list = iTDeviceTypeService.list(pageValidate, searchValidate);
+        return AjaxResult.success(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value="设备类型详情")
+    public AjaxResult<TDeviceTypeDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
+        TDeviceTypeDetailVo detail = iTDeviceTypeService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "设备类型新增")
+    @PostMapping("/add")
+    @ApiOperation(value="设备类型新增")
+    public AjaxResult<Object> add(@Validated @RequestBody TDeviceTypeCreateValidate createValidate) {
+        iTDeviceTypeService.add(createValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备类型编辑")
+    @PostMapping("/edit")
+    @ApiOperation(value="设备类型编辑")
+    public AjaxResult<Object> edit(@Validated @RequestBody TDeviceTypeUpdateValidate updateValidate) {
+        iTDeviceTypeService.edit(updateValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备类型删除")
+    @PostMapping("/del")
+    @ApiOperation(value="设备类型删除")
+    public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
+        iTDeviceTypeService.del(idValidate.getId());
+        return AjaxResult.success();
+    }
+
+}

+ 69 - 0
taphole-device/src/main/java/com/sckj/device/controller/TProtocolController.java

@@ -0,0 +1,69 @@
+package com.sckj.device.controller;
+
+import com.sckj.common.aop.Log;
+import com.sckj.device.service.ITProtocolService;
+import com.sckj.common.validate.commons.IdValidate;
+import com.sckj.device.validate.TProtocolCreateValidate;
+import com.sckj.device.validate.TProtocolUpdateValidate;
+import com.sckj.device.validate.TProtocolSearchValidate;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.vo.TProtocolListedVo;
+import com.sckj.device.vo.TProtocolDetailVo;
+import com.sckj.common.core.AjaxResult;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validator.annotation.IDMust;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("api/protocol")
+@Api(tags = "设备协议管理")
+public class TProtocolController {
+
+    @Resource
+    ITProtocolService iTProtocolService;
+
+    @GetMapping("/list")
+    @ApiOperation(value="设备协议列表")
+    public AjaxResult<PageResult<TProtocolListedVo>> list(@Validated PageValidate pageValidate,
+                                                     @Validated TProtocolSearchValidate searchValidate) {
+        PageResult<TProtocolListedVo> list = iTProtocolService.list(pageValidate, searchValidate);
+        return AjaxResult.success(list);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value="设备协议详情")
+    public AjaxResult<TProtocolDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
+        TProtocolDetailVo detail = iTProtocolService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "设备协议新增")
+    @PostMapping("/add")
+    @ApiOperation(value="设备协议新增")
+    public AjaxResult<Object> add(@Validated @RequestBody TProtocolCreateValidate createValidate) {
+        iTProtocolService.add(createValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备协议编辑")
+    @PostMapping("/edit")
+    @ApiOperation(value="设备协议编辑")
+    public AjaxResult<Object> edit(@Validated @RequestBody TProtocolUpdateValidate updateValidate) {
+        iTProtocolService.edit(updateValidate);
+        return AjaxResult.success();
+    }
+
+    @Log(title = "设备协议删除")
+    @PostMapping("/del")
+    @ApiOperation(value="设备协议删除")
+    public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
+        iTProtocolService.del(idValidate.getId());
+        return AjaxResult.success();
+    }
+
+}

+ 73 - 0
taphole-device/src/main/java/com/sckj/device/entity/TCamera.java

@@ -0,0 +1,73 @@
+package com.sckj.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("摄像头实体")
+@TableName("t_camera")
+public class TCamera implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @TableId(value="id", type= IdType.AUTO)
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+    @ApiModelProperty(value = "安装位置")
+    private String location;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "登录用户名")
+    private String account;
+
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    @ApiModelProperty(value = "设备启用标志(1启用 0停用)")
+    private String status;
+
+    @ApiModelProperty(value = "所属录像机id")
+    private Long vcrId;
+
+    @ApiModelProperty(value = "1-摄像头 2-NVR录像机  ")
+    private String type;
+
+    @ApiModelProperty(value = "品牌(1-海康 0-其他)")
+    private String brand;
+
+}

+ 58 - 0
taphole-device/src/main/java/com/sckj/device/entity/TDevice.java

@@ -0,0 +1,58 @@
+package com.sckj.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备编号实体")
+@TableName("t_device")
+public class TDevice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @TableId(value="id", type= IdType.AUTO)
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备厂家")
+    private Long factoryId;
+
+    @ApiModelProperty(value = "设备类型ID")
+    private Long typeId;
+
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @ApiModelProperty(value = "设备型号")
+    private String model;
+
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+    @ApiModelProperty(value = "设备规格")
+    private String size;
+
+}

+ 2 - 0
taphole-device/src/main/java/com/sckj/device/entity/TDeviceFactory.java

@@ -2,6 +2,7 @@ package com.sckj.device.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,6 +13,7 @@ import java.util.Date;
 
 @Data
 @ApiModel("设备厂家实体")
+@TableName("t_device_factory")
 public class TDeviceFactory implements Serializable {
 
     private static final long serialVersionUID = 1L;

+ 58 - 0
taphole-device/src/main/java/com/sckj/device/entity/TDeviceLocation.java

@@ -0,0 +1,58 @@
+package com.sckj.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备位置实体")
+@TableName("t_device_location")
+public class TDeviceLocation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @TableId(value="id", type= IdType.AUTO)
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+    @ApiModelProperty(value = "安装日期")
+    private String installDate;
+
+    @ApiModelProperty(value = "维护日期")
+    private String protectDate;
+
+    @ApiModelProperty(value = "维护人员")
+    private String protectBy;
+
+    @ApiModelProperty(value = "维护日志")
+    private String protectLog;
+
+}

+ 40 - 0
taphole-device/src/main/java/com/sckj/device/entity/TDeviceType.java

@@ -0,0 +1,40 @@
+package com.sckj.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备类型实体")
+@TableName("t_device_type")
+public class TDeviceType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @TableId(value="id", type= IdType.AUTO)
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+}

+ 54 - 0
taphole-device/src/main/java/com/sckj/device/entity/TProtocol.java

@@ -0,0 +1,54 @@
+package com.sckj.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ApiModel("设备协议实体")
+@TableName("t_protocol")
+public class TProtocol implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @TableId(value="id", type= IdType.AUTO)
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @ApiModelProperty(value = "超时时间")
+    private String timeout;
+
+}

+ 13 - 0
taphole-device/src/main/java/com/sckj/device/mapper/TCameraMapper.java

@@ -0,0 +1,13 @@
+package com.sckj.device.mapper;
+
+import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.device.entity.TCamera;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 摄像头Mapper
+ * @author zhanghao
+ */
+@Mapper
+public interface TCameraMapper extends IBaseMapper<TCamera> {
+}

+ 13 - 0
taphole-device/src/main/java/com/sckj/device/mapper/TDeviceLocationMapper.java

@@ -0,0 +1,13 @@
+package com.sckj.device.mapper;
+
+import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.device.entity.TDeviceLocation;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 设备位置Mapper
+ * @author zhanghao
+ */
+@Mapper
+public interface TDeviceLocationMapper extends IBaseMapper<TDeviceLocation> {
+}

+ 13 - 0
taphole-device/src/main/java/com/sckj/device/mapper/TDeviceMapper.java

@@ -0,0 +1,13 @@
+package com.sckj.device.mapper;
+
+import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.device.entity.TDevice;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 设备编号Mapper
+ * @author zhanghao
+ */
+@Mapper
+public interface TDeviceMapper extends IBaseMapper<TDevice> {
+}

+ 13 - 0
taphole-device/src/main/java/com/sckj/device/mapper/TDeviceTypeMapper.java

@@ -0,0 +1,13 @@
+package com.sckj.device.mapper;
+
+import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.device.entity.TDeviceType;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 设备类型Mapper
+ * @author zhanghao
+ */
+@Mapper
+public interface TDeviceTypeMapper extends IBaseMapper<TDeviceType> {
+}

+ 13 - 0
taphole-device/src/main/java/com/sckj/device/mapper/TProtocolMapper.java

@@ -0,0 +1,13 @@
+package com.sckj.device.mapper;
+
+import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.device.entity.TProtocol;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 设备协议Mapper
+ * @author zhanghao
+ */
+@Mapper
+public interface TProtocolMapper extends IBaseMapper<TProtocol> {
+}

+ 60 - 0
taphole-device/src/main/java/com/sckj/device/service/ITCameraService.java

@@ -0,0 +1,60 @@
+package com.sckj.device.service;
+
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.validate.TCameraCreateValidate;
+import com.sckj.device.validate.TCameraUpdateValidate;
+import com.sckj.device.validate.TCameraSearchValidate;
+import com.sckj.device.vo.TCameraListedVo;
+import com.sckj.device.vo.TCameraDetailVo;
+import com.sckj.common.core.PageResult;
+
+/**
+ * 摄像头服务接口类
+ * @author zhanghao
+ */
+public interface ITCameraService {
+
+    /**
+     * 摄像头列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TCameraListedVo>
+     */
+    PageResult<TCameraListedVo> list(PageValidate pageValidate, TCameraSearchValidate searchValidate);
+
+    /**
+     * 摄像头详情
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     * @return TCameraDetailVo
+     */
+    TCameraDetailVo detail(Integer id);
+
+    /**
+     * 摄像头新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    void add(TCameraCreateValidate createValidate);
+
+    /**
+     * 摄像头编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    void edit(TCameraUpdateValidate updateValidate);
+
+    /**
+     * 摄像头删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    void del(Integer id);
+
+}

+ 60 - 0
taphole-device/src/main/java/com/sckj/device/service/ITDeviceLocationService.java

@@ -0,0 +1,60 @@
+package com.sckj.device.service;
+
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.validate.TDeviceLocationCreateValidate;
+import com.sckj.device.validate.TDeviceLocationUpdateValidate;
+import com.sckj.device.validate.TDeviceLocationSearchValidate;
+import com.sckj.device.vo.TDeviceLocationListedVo;
+import com.sckj.device.vo.TDeviceLocationDetailVo;
+import com.sckj.common.core.PageResult;
+
+/**
+ * 设备位置服务接口类
+ * @author zhanghao
+ */
+public interface ITDeviceLocationService {
+
+    /**
+     * 设备位置列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceLocationListedVo>
+     */
+    PageResult<TDeviceLocationListedVo> list(PageValidate pageValidate, TDeviceLocationSearchValidate searchValidate);
+
+    /**
+     * 设备位置详情
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     * @return TDeviceLocationDetailVo
+     */
+    TDeviceLocationDetailVo detail(Integer id);
+
+    /**
+     * 设备位置新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    void add(TDeviceLocationCreateValidate createValidate);
+
+    /**
+     * 设备位置编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    void edit(TDeviceLocationUpdateValidate updateValidate);
+
+    /**
+     * 设备位置删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    void del(Integer id);
+
+}

+ 60 - 0
taphole-device/src/main/java/com/sckj/device/service/ITDeviceService.java

@@ -0,0 +1,60 @@
+package com.sckj.device.service;
+
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.validate.TDeviceCreateValidate;
+import com.sckj.device.validate.TDeviceUpdateValidate;
+import com.sckj.device.validate.TDeviceSearchValidate;
+import com.sckj.device.vo.TDeviceListedVo;
+import com.sckj.device.vo.TDeviceDetailVo;
+import com.sckj.common.core.PageResult;
+
+/**
+ * 设备编号服务接口类
+ * @author zhanghao
+ */
+public interface ITDeviceService {
+
+    /**
+     * 设备编号列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceListedVo>
+     */
+    PageResult<TDeviceListedVo> list(PageValidate pageValidate, TDeviceSearchValidate searchValidate);
+
+    /**
+     * 设备编号详情
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     * @return TDeviceDetailVo
+     */
+    TDeviceDetailVo detail(Integer id);
+
+    /**
+     * 设备编号新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    void add(TDeviceCreateValidate createValidate);
+
+    /**
+     * 设备编号编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    void edit(TDeviceUpdateValidate updateValidate);
+
+    /**
+     * 设备编号删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    void del(Integer id);
+
+}

+ 60 - 0
taphole-device/src/main/java/com/sckj/device/service/ITDeviceTypeService.java

@@ -0,0 +1,60 @@
+package com.sckj.device.service;
+
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.validate.TDeviceTypeCreateValidate;
+import com.sckj.device.validate.TDeviceTypeUpdateValidate;
+import com.sckj.device.validate.TDeviceTypeSearchValidate;
+import com.sckj.device.vo.TDeviceTypeListedVo;
+import com.sckj.device.vo.TDeviceTypeDetailVo;
+import com.sckj.common.core.PageResult;
+
+/**
+ * 设备类型服务接口类
+ * @author zhanghao
+ */
+public interface ITDeviceTypeService {
+
+    /**
+     * 设备类型列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceTypeListedVo>
+     */
+    PageResult<TDeviceTypeListedVo> list(PageValidate pageValidate, TDeviceTypeSearchValidate searchValidate);
+
+    /**
+     * 设备类型详情
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     * @return TDeviceTypeDetailVo
+     */
+    TDeviceTypeDetailVo detail(Integer id);
+
+    /**
+     * 设备类型新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    void add(TDeviceTypeCreateValidate createValidate);
+
+    /**
+     * 设备类型编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    void edit(TDeviceTypeUpdateValidate updateValidate);
+
+    /**
+     * 设备类型删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    void del(Integer id);
+
+}

+ 60 - 0
taphole-device/src/main/java/com/sckj/device/service/ITProtocolService.java

@@ -0,0 +1,60 @@
+package com.sckj.device.service;
+
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.validate.TProtocolCreateValidate;
+import com.sckj.device.validate.TProtocolUpdateValidate;
+import com.sckj.device.validate.TProtocolSearchValidate;
+import com.sckj.device.vo.TProtocolListedVo;
+import com.sckj.device.vo.TProtocolDetailVo;
+import com.sckj.common.core.PageResult;
+
+/**
+ * 设备协议服务接口类
+ * @author zhanghao
+ */
+public interface ITProtocolService {
+
+    /**
+     * 设备协议列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TProtocolListedVo>
+     */
+    PageResult<TProtocolListedVo> list(PageValidate pageValidate, TProtocolSearchValidate searchValidate);
+
+    /**
+     * 设备协议详情
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     * @return TProtocolDetailVo
+     */
+    TProtocolDetailVo detail(Integer id);
+
+    /**
+     * 设备协议新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    void add(TProtocolCreateValidate createValidate);
+
+    /**
+     * 设备协议编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    void edit(TProtocolUpdateValidate updateValidate);
+
+    /**
+     * 设备协议删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    void del(Integer id);
+
+}

+ 165 - 0
taphole-device/src/main/java/com/sckj/device/service/impl/TCameraServiceImpl.java

@@ -0,0 +1,165 @@
+package com.sckj.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.query.MPJQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.service.ITCameraService;
+import com.sckj.device.validate.TCameraCreateValidate;
+import com.sckj.device.validate.TCameraUpdateValidate;
+import com.sckj.device.validate.TCameraSearchValidate;
+import com.sckj.device.vo.TCameraListedVo;
+import com.sckj.device.vo.TCameraDetailVo;
+import com.sckj.common.config.GlobalConfig;
+import com.sckj.common.core.PageResult;
+import com.sckj.device.entity.TCamera;
+import com.sckj.device.mapper.TCameraMapper;
+import com.sckj.common.util.ListUtils;
+import com.sckj.common.util.TimeUtils;
+import com.sckj.common.util.UrlUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * 摄像头实现类
+ * @author zhanghao
+ */
+@Service
+public class TCameraServiceImpl implements ITCameraService {
+        
+    @Resource
+    TCameraMapper tCameraMapper;
+
+    /**
+     * 摄像头列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TCameraListedVo>
+     */
+    @Override
+    public PageResult<TCameraListedVo> list(PageValidate pageValidate, TCameraSearchValidate searchValidate) {
+        Integer page  = pageValidate.getPageNo();
+        Integer limit = pageValidate.getPageSize();
+
+        QueryWrapper<TCamera> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("id");
+
+        tCameraMapper.setSearch(queryWrapper, searchValidate, new String[]{
+            "=:no:str",
+            "like:name:str",
+            "=:model:str",
+        });
+
+        IPage<TCamera> iPage = tCameraMapper.selectPage(new Page<>(page, limit), queryWrapper.eq("type", "1"));
+
+        List<TCameraListedVo> list = new LinkedList<>();
+        for(TCamera item : iPage.getRecords()) {
+            TCameraListedVo vo = new TCameraListedVo();
+            BeanUtils.copyProperties(item, vo);
+            list.add(vo);
+        }
+
+        return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
+    }
+
+    /**
+     * 摄像头详情
+     *
+     * @author zhanghao
+     * @param id 主键参数
+     * @return TCamera
+     */
+    @Override
+    public TCameraDetailVo detail(Integer id) {
+        TCamera model = tCameraMapper.selectOne(
+                new QueryWrapper<TCamera>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TCameraDetailVo vo = new TCameraDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
+    /**
+     * 摄像头新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    @Override
+    public void add(TCameraCreateValidate createValidate) {
+        TCamera model = new TCamera();
+        model.setCreateTime(new Date(System.currentTimeMillis()));
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(createValidate.getNo());
+        model.setName(createValidate.getName());
+        model.setModel(createValidate.getModel());
+        model.setLocation(createValidate.getLocation());
+        model.setIp(createValidate.getIp());
+        model.setPort(createValidate.getPort());
+        model.setAccount(createValidate.getAccount());
+        model.setPassword(createValidate.getPassword());
+        model.setStatus(createValidate.getStatus());
+        model.setVcrId(createValidate.getVcrId());
+        model.setType(createValidate.getType());
+        tCameraMapper.insert(model);
+    }
+
+    /**
+     * 摄像头编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    @Override
+    public void edit(TCameraUpdateValidate updateValidate) {
+        TCamera model = tCameraMapper.selectOne(
+                new QueryWrapper<TCamera>()
+                    .eq("id",  updateValidate.getId())
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(updateValidate.getNo());
+        model.setName(updateValidate.getName());
+        model.setModel(updateValidate.getModel());
+        model.setLocation(updateValidate.getLocation());
+        model.setIp(updateValidate.getIp());
+        model.setPort(updateValidate.getPort());
+        model.setAccount(updateValidate.getAccount());
+        model.setPassword(updateValidate.getPassword());
+        model.setStatus(updateValidate.getStatus());
+        model.setVcrId(updateValidate.getVcrId());
+        tCameraMapper.updateById(model);
+    }
+
+    /**
+     * 摄像头删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    @Override
+    public void del(Integer id) {
+        TCamera model = tCameraMapper.selectOne(
+                new QueryWrapper<TCamera>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        tCameraMapper.delete(new QueryWrapper<TCamera>().eq("id", id));
+    }
+
+}

+ 42 - 33
taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceFactoryServiceImpl.java

@@ -1,71 +1,74 @@
 package com.sckj.device.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.github.yulichang.query.MPJQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.util.StringUtils;
 import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.entity.TDeviceFactory;
+import com.sckj.device.mapper.TDeviceFactoryMapper;
 import com.sckj.device.service.ITDeviceFactoryService;
 import com.sckj.device.validate.TDeviceFactoryCreateValidate;
-import com.sckj.device.validate.TDeviceFactoryUpdateValidate;
 import com.sckj.device.validate.TDeviceFactorySearchValidate;
-import com.sckj.device.vo.TDeviceFactoryListedVo;
+import com.sckj.device.validate.TDeviceFactoryUpdateValidate;
 import com.sckj.device.vo.TDeviceFactoryDetailVo;
-import com.sckj.common.config.GlobalConfig;
-import com.sckj.common.core.PageResult;
-import com.sckj.device.entity.TDeviceFactory;
-import com.sckj.device.mapper.TDeviceFactoryMapper;
-import com.sckj.common.util.ListUtils;
-import com.sckj.common.util.TimeUtils;
-import com.sckj.common.util.UrlUtils;
+import com.sckj.device.vo.TDeviceFactoryListedVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 
 /**
  * 设备厂家实现类
+ *
  * @author zhanghao
  */
 @Service
 public class TDeviceFactoryServiceImpl implements ITDeviceFactoryService {
-        
+
     @Resource
     TDeviceFactoryMapper tDeviceFactoryMapper;
 
     /**
      * 设备厂家列表
      *
-     * @author zhanghao
-     * @param pageValidate 分页参数
+     * @param pageValidate   分页参数
      * @param searchValidate 搜索参数
      * @return PageResult<TDeviceFactoryListedVo>
+     * @author zhanghao
      */
     @Override
     public PageResult<TDeviceFactoryListedVo> list(PageValidate pageValidate, TDeviceFactorySearchValidate searchValidate) {
-        Integer page  = pageValidate.getPageNo();
+        Integer page = pageValidate.getPageNo();
         Integer limit = pageValidate.getPageSize();
 
         QueryWrapper<TDeviceFactory> queryWrapper = new QueryWrapper<>();
         queryWrapper.orderByDesc("id");
 
+//        if (StringUtils.isNotEmpty(searchValidate.getCreateTimeStart()) && StringUtils.isNotEmpty(searchValidate.getCreateTimeEnd())) {
+//            queryWrapper.ge("create_time", searchValidate.getCreateTimeStart())
+//                    .le("create_time", searchValidate.getCreateTimeEnd());
+//        }
+
         tDeviceFactoryMapper.setSearch(queryWrapper, searchValidate, new String[]{
-            "datetime:createTimeStart-createTimeEnd@create_time:str",
-            "like:factoryName@factory_name:str",
-            "=:factoryPhone@factory_phone:str",
-            "=:factoryAddress@factory_address:str",
+                "like:factoryName@factory_name:str",
+                "=:factoryPhone@factory_phone:str",
+                "=:factoryAddress@factory_address:str",
         });
 
         IPage<TDeviceFactory> iPage = tDeviceFactoryMapper.selectPage(new Page<>(page, limit), queryWrapper);
 
         List<TDeviceFactoryListedVo> list = new LinkedList<>();
-        for(TDeviceFactory item : iPage.getRecords()) {
+        for (TDeviceFactory item : iPage.getRecords()) {
             TDeviceFactoryListedVo vo = new TDeviceFactoryListedVo();
             BeanUtils.copyProperties(item, vo);
-            vo.setCreateTime(TimeUtils.timestampToDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getCreateTime())));
+            vo.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getCreateTime()));
             list.add(vo);
         }
 
@@ -75,16 +78,16 @@ public class TDeviceFactoryServiceImpl implements ITDeviceFactoryService {
     /**
      * 设备厂家详情
      *
-     * @author zhanghao
      * @param id 主键参数
      * @return TDeviceFactory
+     * @author zhanghao
      */
     @Override
     public TDeviceFactoryDetailVo detail(Integer id) {
         TDeviceFactory model = tDeviceFactoryMapper.selectOne(
                 new QueryWrapper<TDeviceFactory>()
-                    .eq("id", id)
-                    .last("limit 1"));
+                        .eq("id", id)
+                        .last("limit 1"));
 
         Assert.notNull(model, "数据不存在");
 
@@ -97,8 +100,8 @@ public class TDeviceFactoryServiceImpl implements ITDeviceFactoryService {
     /**
      * 设备厂家新增
      *
-     * @author zhanghao
      * @param createValidate 参数
+     * @author zhanghao
      */
     @Override
     public void add(TDeviceFactoryCreateValidate createValidate) {
@@ -111,22 +114,25 @@ public class TDeviceFactoryServiceImpl implements ITDeviceFactoryService {
         model.setFactoryPhone(createValidate.getFactoryPhone());
         model.setFactoryAddress(createValidate.getFactoryAddress());
         model.setFactoryAddressDetail(createValidate.getFactoryAddressDetail());
-        model.setQcPath(createValidate.getQcPath());
+        for (int i = 0; i < createValidate.getQcPathList().length; i++) {
+            createValidate.getQcPathList()[i] = createValidate.getQcPathList()[i].substring(35);
+        }
+        model.setQcPath(String.join(",", createValidate.getQcPathList()));
         tDeviceFactoryMapper.insert(model);
     }
 
     /**
      * 设备厂家编辑
      *
-     * @author zhanghao
      * @param updateValidate 参数
+     * @author zhanghao
      */
     @Override
     public void edit(TDeviceFactoryUpdateValidate updateValidate) {
         TDeviceFactory model = tDeviceFactoryMapper.selectOne(
                 new QueryWrapper<TDeviceFactory>()
-                    .eq("id",  updateValidate.getId())
-                    .last("limit 1"));
+                        .eq("id", updateValidate.getId())
+                        .last("limit 1"));
 
         Assert.notNull(model, "数据不存在!");
 
@@ -136,22 +142,25 @@ public class TDeviceFactoryServiceImpl implements ITDeviceFactoryService {
         model.setFactoryPhone(updateValidate.getFactoryPhone());
         model.setFactoryAddress(updateValidate.getFactoryAddress());
         model.setFactoryAddressDetail(updateValidate.getFactoryAddressDetail());
-        model.setQcPath(updateValidate.getQcPath());
+        for (int i = 0; i < updateValidate.getQcPathList().length; i++) {
+            updateValidate.getQcPathList()[i] = updateValidate.getQcPathList()[i].substring(35);
+        }
+        model.setQcPath(String.join(",", updateValidate.getQcPathList()));
         tDeviceFactoryMapper.updateById(model);
     }
 
     /**
      * 设备厂家删除
      *
-     * @author zhanghao
      * @param id 主键ID
+     * @author zhanghao
      */
     @Override
     public void del(Integer id) {
         TDeviceFactory model = tDeviceFactoryMapper.selectOne(
                 new QueryWrapper<TDeviceFactory>()
-                    .eq("id", id)
-                    .last("limit 1"));
+                        .eq("id", id)
+                        .last("limit 1"));
 
         Assert.notNull(model, "数据不存在!");
 

+ 155 - 0
taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceLocationServiceImpl.java

@@ -0,0 +1,155 @@
+package com.sckj.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.entity.TDeviceLocation;
+import com.sckj.device.mapper.TDeviceLocationMapper;
+import com.sckj.device.service.ITDeviceLocationService;
+import com.sckj.device.validate.TDeviceLocationCreateValidate;
+import com.sckj.device.validate.TDeviceLocationSearchValidate;
+import com.sckj.device.validate.TDeviceLocationUpdateValidate;
+import com.sckj.device.vo.TDeviceLocationDetailVo;
+import com.sckj.device.vo.TDeviceLocationListedVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 设备位置实现类
+ * @author zhanghao
+ */
+@Service
+public class TDeviceLocationServiceImpl implements ITDeviceLocationService {
+        
+    @Resource
+    TDeviceLocationMapper tDeviceLocationMapper;
+
+    /**
+     * 设备位置列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceLocationListedVo>
+     */
+    @Override
+    public PageResult<TDeviceLocationListedVo> list(PageValidate pageValidate, TDeviceLocationSearchValidate searchValidate) {
+        Integer page  = pageValidate.getPageNo();
+        Integer limit = pageValidate.getPageSize();
+
+        QueryWrapper<TDeviceLocation> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("id");
+
+        tDeviceLocationMapper.setSearch(queryWrapper, searchValidate, new String[]{
+            "=:deviceNo@device_no:str",
+            "like:deviceName@device_name:str",
+            "=:deviceLocation@device_location:str",
+        });
+
+        IPage<TDeviceLocation> iPage = tDeviceLocationMapper.selectPage(new Page<>(page, limit), queryWrapper);
+
+        List<TDeviceLocationListedVo> list = new LinkedList<>();
+        for(TDeviceLocation item : iPage.getRecords()) {
+            TDeviceLocationListedVo vo = new TDeviceLocationListedVo();
+            BeanUtils.copyProperties(item, vo);
+            list.add(vo);
+        }
+
+        return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
+    }
+
+    /**
+     * 设备位置详情
+     *
+     * @author zhanghao
+     * @param id 主键参数
+     * @return TDeviceLocation
+     */
+    @Override
+    public TDeviceLocationDetailVo detail(Integer id) {
+        TDeviceLocation model = tDeviceLocationMapper.selectOne(
+                new QueryWrapper<TDeviceLocation>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TDeviceLocationDetailVo vo = new TDeviceLocationDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
+    /**
+     * 设备位置新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    @Override
+    public void add(TDeviceLocationCreateValidate createValidate) {
+        TDeviceLocation model = new TDeviceLocation();
+        model.setCreateTime(new Date(System.currentTimeMillis()));
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setDeviceNo(createValidate.getDeviceNo());
+        model.setDeviceName(createValidate.getDeviceName());
+        model.setDeviceLocation(createValidate.getDeviceLocation());
+        model.setInstallDate(createValidate.getInstallDate());
+        model.setProtectDate(createValidate.getProtectDate());
+        model.setProtectBy(createValidate.getProtectBy());
+        model.setProtectLog(createValidate.getProtectLog());
+        tDeviceLocationMapper.insert(model);
+    }
+
+    /**
+     * 设备位置编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    @Override
+    public void edit(TDeviceLocationUpdateValidate updateValidate) {
+        TDeviceLocation model = tDeviceLocationMapper.selectOne(
+                new QueryWrapper<TDeviceLocation>()
+                    .eq("id",  updateValidate.getId())
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setDeviceNo(updateValidate.getDeviceNo());
+        model.setDeviceName(updateValidate.getDeviceName());
+        model.setDeviceLocation(updateValidate.getDeviceLocation());
+        model.setInstallDate(updateValidate.getInstallDate());
+        model.setProtectDate(updateValidate.getProtectDate());
+        model.setProtectBy(updateValidate.getProtectBy());
+        model.setProtectLog(updateValidate.getProtectLog());
+        tDeviceLocationMapper.updateById(model);
+    }
+
+    /**
+     * 设备位置删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    @Override
+    public void del(Integer id) {
+        TDeviceLocation model = tDeviceLocationMapper.selectOne(
+                new QueryWrapper<TDeviceLocation>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        tDeviceLocationMapper.delete(new QueryWrapper<TDeviceLocation>().eq("id", id));
+    }
+
+}

+ 176 - 0
taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceServiceImpl.java

@@ -0,0 +1,176 @@
+package com.sckj.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.entity.TDevice;
+import com.sckj.device.entity.TDeviceFactory;
+import com.sckj.device.entity.TDeviceType;
+import com.sckj.device.mapper.TDeviceFactoryMapper;
+import com.sckj.device.mapper.TDeviceMapper;
+import com.sckj.device.mapper.TDeviceTypeMapper;
+import com.sckj.device.service.ITDeviceService;
+import com.sckj.device.validate.TDeviceCreateValidate;
+import com.sckj.device.validate.TDeviceSearchValidate;
+import com.sckj.device.validate.TDeviceUpdateValidate;
+import com.sckj.device.vo.TDeviceDetailVo;
+import com.sckj.device.vo.TDeviceListedVo;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+import static java.util.stream.Collectors.toMap;
+
+/**
+ * 设备编号实现类
+ * @author zhanghao
+ */
+@Service
+public class TDeviceServiceImpl implements ITDeviceService {
+        
+    @Resource
+    TDeviceMapper tDeviceMapper;
+
+    @Resource
+    TDeviceTypeMapper tDeviceTypeMapper;
+
+    @Resource
+    TDeviceFactoryMapper tDeviceFactoryMapper;
+
+    /**
+     * 设备编号列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceListedVo>
+     */
+    @Override
+    public PageResult<TDeviceListedVo> list(PageValidate pageValidate, TDeviceSearchValidate searchValidate) {
+        Integer page  = pageValidate.getPageNo();
+        Integer limit = pageValidate.getPageSize();
+
+        QueryWrapper<TDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("id");
+
+        tDeviceMapper.setSearch(queryWrapper, searchValidate, new String[]{
+            "=:no:str",
+            "like:name:str",
+            "=:type:str",
+        });
+
+        IPage<TDevice> iPage = tDeviceMapper.selectPage(new Page<>(page, limit), queryWrapper);
+
+        List<TDeviceListedVo> list = new LinkedList<>();
+        List<Long> typeIds = new ArrayList<>();
+        List<Long> factoryIds = new ArrayList<>();
+        for(TDevice item : iPage.getRecords()) {
+            TDeviceListedVo vo = new TDeviceListedVo();
+            typeIds.add(item.getTypeId());
+            factoryIds.add(item.getFactoryId());
+            BeanUtils.copyProperties(item, vo);
+            list.add(vo);
+        }
+
+        if (CollectionUtils.isNotEmpty(list)){
+            List<TDeviceType> modelType = tDeviceTypeMapper.selectList(new QueryWrapper<TDeviceType>().in("id", typeIds));
+            List<TDeviceFactory> modelFactory = tDeviceFactoryMapper.selectList(new QueryWrapper<TDeviceFactory>().in("id", factoryIds));
+
+            Map<Long, String> hashMapType = modelType.stream().collect(toMap(TDeviceType::getId, TDeviceType::getName));
+            Map<Long, String> hashMapFactory = modelFactory.stream().collect(toMap(TDeviceFactory::getId, TDeviceFactory::getFactoryName));
+
+            list.forEach(e -> {
+                e.setType(hashMapType.get(e.getTypeId()));
+                e.setFactoryName(hashMapFactory.get(e.getFactoryId()));
+            });
+        }
+
+
+        return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
+    }
+
+    /**
+     * 设备编号详情
+     *
+     * @author zhanghao
+     * @param id 主键参数
+     * @return TDevice
+     */
+    @Override
+    public TDeviceDetailVo detail(Integer id) {
+        TDevice model = tDeviceMapper.selectOne(
+                new QueryWrapper<TDevice>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TDeviceDetailVo vo = new TDeviceDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
+    /**
+     * 设备编号新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    @Override
+    public void add(TDeviceCreateValidate createValidate) {
+        TDevice model = new TDevice();
+        model.setCreateTime(new Date(System.currentTimeMillis()));
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(createValidate.getNo());
+        model.setName(createValidate.getName());
+        model.setType(createValidate.getType());
+        tDeviceMapper.insert(model);
+    }
+
+    /**
+     * 设备编号编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    @Override
+    public void edit(TDeviceUpdateValidate updateValidate) {
+        TDevice model = tDeviceMapper.selectOne(
+                new QueryWrapper<TDevice>()
+                    .eq("id",  updateValidate.getId())
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(updateValidate.getNo());
+        model.setName(updateValidate.getName());
+        model.setType(updateValidate.getType());
+        tDeviceMapper.updateById(model);
+    }
+
+    /**
+     * 设备编号删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    @Override
+    public void del(Integer id) {
+        TDevice model = tDeviceMapper.selectOne(
+                new QueryWrapper<TDevice>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        tDeviceMapper.delete(new QueryWrapper<TDevice>().eq("id", id));
+    }
+
+}

+ 141 - 0
taphole-device/src/main/java/com/sckj/device/service/impl/TDeviceTypeServiceImpl.java

@@ -0,0 +1,141 @@
+package com.sckj.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.entity.TDeviceType;
+import com.sckj.device.mapper.TDeviceTypeMapper;
+import com.sckj.device.service.ITDeviceTypeService;
+import com.sckj.device.validate.TDeviceTypeCreateValidate;
+import com.sckj.device.validate.TDeviceTypeSearchValidate;
+import com.sckj.device.validate.TDeviceTypeUpdateValidate;
+import com.sckj.device.vo.TDeviceTypeDetailVo;
+import com.sckj.device.vo.TDeviceTypeListedVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 设备类型实现类
+ * @author zhanghao
+ */
+@Service
+public class TDeviceTypeServiceImpl implements ITDeviceTypeService {
+        
+    @Resource
+    TDeviceTypeMapper tDeviceTypeMapper;
+
+    /**
+     * 设备类型列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TDeviceTypeListedVo>
+     */
+    @Override
+    public PageResult<TDeviceTypeListedVo> list(PageValidate pageValidate, TDeviceTypeSearchValidate searchValidate) {
+        Integer page  = pageValidate.getPageNo();
+        Integer limit = pageValidate.getPageSize();
+
+        QueryWrapper<TDeviceType> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("id");
+
+        tDeviceTypeMapper.setSearch(queryWrapper, searchValidate, new String[]{
+            "like:name:str",
+        });
+
+        IPage<TDeviceType> iPage = tDeviceTypeMapper.selectPage(new Page<>(page, limit), queryWrapper);
+
+        List<TDeviceTypeListedVo> list = new LinkedList<>();
+        for(TDeviceType item : iPage.getRecords()) {
+            TDeviceTypeListedVo vo = new TDeviceTypeListedVo();
+            BeanUtils.copyProperties(item, vo);
+            list.add(vo);
+        }
+
+        return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
+    }
+
+    /**
+     * 设备类型详情
+     *
+     * @author zhanghao
+     * @param id 主键参数
+     * @return TDeviceType
+     */
+    @Override
+    public TDeviceTypeDetailVo detail(Integer id) {
+        TDeviceType model = tDeviceTypeMapper.selectOne(
+                new QueryWrapper<TDeviceType>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TDeviceTypeDetailVo vo = new TDeviceTypeDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
+    /**
+     * 设备类型新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    @Override
+    public void add(TDeviceTypeCreateValidate createValidate) {
+        TDeviceType model = new TDeviceType();
+        model.setCreateTime(new Date(System.currentTimeMillis()));
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setName(createValidate.getName());
+        tDeviceTypeMapper.insert(model);
+    }
+
+    /**
+     * 设备类型编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    @Override
+    public void edit(TDeviceTypeUpdateValidate updateValidate) {
+        TDeviceType model = tDeviceTypeMapper.selectOne(
+                new QueryWrapper<TDeviceType>()
+                    .eq("id",  updateValidate.getId())
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setName(updateValidate.getName());
+        tDeviceTypeMapper.updateById(model);
+    }
+
+    /**
+     * 设备类型删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    @Override
+    public void del(Integer id) {
+        TDeviceType model = tDeviceTypeMapper.selectOne(
+                new QueryWrapper<TDeviceType>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        tDeviceTypeMapper.delete(new QueryWrapper<TDeviceType>().eq("id", id));
+    }
+
+}

+ 151 - 0
taphole-device/src/main/java/com/sckj/device/service/impl/TProtocolServiceImpl.java

@@ -0,0 +1,151 @@
+package com.sckj.device.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sckj.common.core.PageResult;
+import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.device.entity.TProtocol;
+import com.sckj.device.mapper.TProtocolMapper;
+import com.sckj.device.service.ITProtocolService;
+import com.sckj.device.validate.TProtocolCreateValidate;
+import com.sckj.device.validate.TProtocolSearchValidate;
+import com.sckj.device.validate.TProtocolUpdateValidate;
+import com.sckj.device.vo.TProtocolDetailVo;
+import com.sckj.device.vo.TProtocolListedVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 设备协议实现类
+ * @author zhanghao
+ */
+@Service
+public class TProtocolServiceImpl implements ITProtocolService {
+        
+    @Resource
+    TProtocolMapper tProtocolMapper;
+
+    /**
+     * 设备协议列表
+     *
+     * @author zhanghao
+     * @param pageValidate 分页参数
+     * @param searchValidate 搜索参数
+     * @return PageResult<TProtocolListedVo>
+     */
+    @Override
+    public PageResult<TProtocolListedVo> list(PageValidate pageValidate, TProtocolSearchValidate searchValidate) {
+        Integer page  = pageValidate.getPageNo();
+        Integer limit = pageValidate.getPageSize();
+
+        QueryWrapper<TProtocol> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("id");
+
+        tProtocolMapper.setSearch(queryWrapper, searchValidate, new String[]{
+            "=:no:str",
+            "like:name:str",
+            "=:type:str",
+        });
+
+        IPage<TProtocol> iPage = tProtocolMapper.selectPage(new Page<>(page, limit), queryWrapper);
+
+        List<TProtocolListedVo> list = new LinkedList<>();
+        for(TProtocol item : iPage.getRecords()) {
+            TProtocolListedVo vo = new TProtocolListedVo();
+            BeanUtils.copyProperties(item, vo);
+            list.add(vo);
+        }
+
+        return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
+    }
+
+    /**
+     * 设备协议详情
+     *
+     * @author zhanghao
+     * @param id 主键参数
+     * @return TProtocol
+     */
+    @Override
+    public TProtocolDetailVo detail(Integer id) {
+        TProtocol model = tProtocolMapper.selectOne(
+                new QueryWrapper<TProtocol>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TProtocolDetailVo vo = new TProtocolDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
+    /**
+     * 设备协议新增
+     *
+     * @author zhanghao
+     * @param createValidate 参数
+     */
+    @Override
+    public void add(TProtocolCreateValidate createValidate) {
+        TProtocol model = new TProtocol();
+        model.setCreateTime(new Date(System.currentTimeMillis()));
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(createValidate.getNo());
+        model.setName(createValidate.getName());
+        model.setType(createValidate.getType());
+        model.setPort(createValidate.getPort());
+        model.setIp(createValidate.getIp());
+        tProtocolMapper.insert(model);
+    }
+
+    /**
+     * 设备协议编辑
+     *
+     * @author zhanghao
+     * @param updateValidate 参数
+     */
+    @Override
+    public void edit(TProtocolUpdateValidate updateValidate) {
+        TProtocol model = tProtocolMapper.selectOne(
+                new QueryWrapper<TProtocol>()
+                    .eq("id",  updateValidate.getId())
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        model.setUpdateTime(new Date(System.currentTimeMillis()));
+        model.setNo(updateValidate.getNo());
+        model.setName(updateValidate.getName());
+        model.setType(updateValidate.getType());
+        model.setPort(updateValidate.getPort());
+        model.setIp(updateValidate.getIp());
+        tProtocolMapper.updateById(model);
+    }
+
+    /**
+     * 设备协议删除
+     *
+     * @author zhanghao
+     * @param id 主键ID
+     */
+    @Override
+    public void del(Integer id) {
+        TProtocol model = tProtocolMapper.selectOne(
+                new QueryWrapper<TProtocol>()
+                    .eq("id", id)
+                    .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在!");
+
+        tProtocolMapper.delete(new QueryWrapper<TProtocol>().eq("id", id));
+    }
+
+}

+ 61 - 0
taphole-device/src/main/java/com/sckj/device/validate/TCameraCreateValidate.java

@@ -0,0 +1,61 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import javax.validation.constraints.*;
+
+@Data
+@ApiModel("摄像头创建参数")
+public class TCameraCreateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @NotNull(message = "model参数缺失")
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+    @NotNull(message = "location参数缺失")
+    @ApiModelProperty(value = "安装位置")
+    private String location;
+
+    @NotNull(message = "ip参数缺失")
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @NotNull(message = "port参数缺失")
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @NotNull(message = "account参数缺失")
+    @ApiModelProperty(value = "登录用户名")
+    private String account;
+
+    @NotNull(message = "password参数缺失")
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    @NotNull(message = "status参数缺失")
+    @ApiModelProperty(value = "设备启用标志(1启用 0停用)")
+    private String status;
+
+    @NotNull(message = "vcrId参数缺失")
+    @ApiModelProperty(value = "所属录像机id")
+    private Long vcrId;
+
+    @NotNull(message = "type参数缺失")
+    @ApiModelProperty(value = "1-摄像头 2-NVR录像机  ")
+    private String type;
+
+}

+ 25 - 0
taphole-device/src/main/java/com/sckj/device/validate/TCameraSearchValidate.java

@@ -0,0 +1,25 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("摄像头搜素参数")
+public class TCameraSearchValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+}

+ 63 - 0
taphole-device/src/main/java/com/sckj/device/validate/TCameraUpdateValidate.java

@@ -0,0 +1,63 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+
+/**
+ * 摄像头参数
+ * @author zhanghao
+ */
+@Data
+@ApiModel("摄像头更新参数")
+public class TCameraUpdateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "id参数必传")
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @NotNull(message = "model参数缺失")
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+    @NotNull(message = "location参数缺失")
+    @ApiModelProperty(value = "安装位置")
+    private String location;
+
+    @NotNull(message = "ip参数缺失")
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @NotNull(message = "port参数缺失")
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @NotNull(message = "account参数缺失")
+    @ApiModelProperty(value = "登录用户名")
+    private String account;
+
+    @NotNull(message = "password参数缺失")
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    @NotNull(message = "status参数缺失")
+    @ApiModelProperty(value = "设备启用标志(1启用 0停用)")
+    private String status;
+
+    @NotNull(message = "vcrId参数缺失")
+    @ApiModelProperty(value = "所属录像机id")
+    private Long vcrId;
+
+}

+ 29 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceCreateValidate.java

@@ -0,0 +1,29 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import javax.validation.constraints.*;
+
+@Data
+@ApiModel("设备编号创建参数")
+public class TDeviceCreateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @NotNull(message = "type参数缺失")
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+}

+ 2 - 4
taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactoryCreateValidate.java

@@ -14,11 +14,9 @@ public class TDeviceFactoryCreateValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @NotNull(message = "createBy参数缺失")
     @ApiModelProperty(value = "创建人")
     private String createBy;
 
-    @NotNull(message = "createTime参数缺失")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
@@ -44,8 +42,8 @@ public class TDeviceFactoryCreateValidate implements Serializable {
     @ApiModelProperty(value = "厂家详细地址")
     private String factoryAddressDetail;
 
-    @NotNull(message = "qcPath参数缺失")
+    @NotNull(message = "qcPathList参数缺失")
     @ApiModelProperty(value = "质量认证证书路径")
-    private String qcPath;
+    private String[] qcPathList;
 
 }

+ 0 - 6
taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactorySearchValidate.java

@@ -13,12 +13,6 @@ public class TDeviceFactorySearchValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "开始时间")
-    private String createTimeStart;
-
-    @ApiModelProperty(value = "结束时间")
-    private String createTimeEnd;
-
     @ApiModelProperty(value = "厂家名称")
     private String factoryName;
 

+ 2 - 2
taphole-device/src/main/java/com/sckj/device/validate/TDeviceFactoryUpdateValidate.java

@@ -44,8 +44,8 @@ public class TDeviceFactoryUpdateValidate implements Serializable {
     @ApiModelProperty(value = "厂家详细地址")
     private String factoryAddressDetail;
 
-    @NotNull(message = "qcPath参数缺失")
+    @NotNull(message = "qcPathList参数缺失")
     @ApiModelProperty(value = "质量认证证书路径")
-    private String qcPath;
+    private String[] qcPathList;
 
 }

+ 45 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationCreateValidate.java

@@ -0,0 +1,45 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import javax.validation.constraints.*;
+
+@Data
+@ApiModel("设备位置创建参数")
+public class TDeviceLocationCreateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "deviceNo参数缺失")
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @NotNull(message = "deviceName参数缺失")
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @NotNull(message = "deviceLocation参数缺失")
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+    @NotNull(message = "installDate参数缺失")
+    @ApiModelProperty(value = "安装日期")
+    private String installDate;
+
+    @NotNull(message = "protectDate参数缺失")
+    @ApiModelProperty(value = "维护日期")
+    private String protectDate;
+
+    @NotNull(message = "protectBy参数缺失")
+    @ApiModelProperty(value = "维护人员")
+    private String protectBy;
+
+    @NotNull(message = "protectLog参数缺失")
+    @ApiModelProperty(value = "维护日志")
+    private String protectLog;
+
+}

+ 25 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationSearchValidate.java

@@ -0,0 +1,25 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备位置搜素参数")
+public class TDeviceLocationSearchValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+}

+ 53 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceLocationUpdateValidate.java

@@ -0,0 +1,53 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 设备位置参数
+ *
+ * @author zhanghao
+ */
+@Data
+@ApiModel("设备位置更新参数")
+public class TDeviceLocationUpdateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "id参数必传")
+    @ApiModelProperty(value = "设备位置主键")
+    private Long id;
+
+    @NotNull(message = "deviceNo参数缺失")
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @NotNull(message = "deviceName参数缺失")
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @NotNull(message = "deviceLocation参数缺失")
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+    @NotNull(message = "installDate参数缺失")
+    @ApiModelProperty(value = "安装日期")
+    private String installDate;
+
+    @NotNull(message = "protectDate参数缺失")
+    @ApiModelProperty(value = "维护日期")
+    private String protectDate;
+
+    @NotNull(message = "protectBy参数缺失")
+    @ApiModelProperty(value = "维护人员")
+    private String protectBy;
+
+    @NotNull(message = "protectLog参数缺失")
+    @ApiModelProperty(value = "维护日志")
+    private String protectLog;
+
+}

+ 25 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceSearchValidate.java

@@ -0,0 +1,25 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备编号搜素参数")
+public class TDeviceSearchValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+}

+ 21 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeCreateValidate.java

@@ -0,0 +1,21 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import javax.validation.constraints.*;
+
+@Data
+@ApiModel("设备类型创建参数")
+public class TDeviceTypeCreateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+}

+ 19 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeSearchValidate.java

@@ -0,0 +1,19 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备类型搜素参数")
+public class TDeviceTypeSearchValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+}

+ 27 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceTypeUpdateValidate.java

@@ -0,0 +1,27 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+
+/**
+ * 设备类型参数
+ * @author zhanghao
+ */
+@Data
+@ApiModel("设备类型更新参数")
+public class TDeviceTypeUpdateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "id参数必传")
+    @ApiModelProperty(value = "设备类型ID")
+    private Long id;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+}

+ 35 - 0
taphole-device/src/main/java/com/sckj/device/validate/TDeviceUpdateValidate.java

@@ -0,0 +1,35 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+
+/**
+ * 设备编号参数
+ * @author zhanghao
+ */
+@Data
+@ApiModel("设备编号更新参数")
+public class TDeviceUpdateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "id参数必传")
+    @ApiModelProperty(value = "设备ID")
+    private Long id;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @NotNull(message = "type参数缺失")
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+}

+ 37 - 0
taphole-device/src/main/java/com/sckj/device/validate/TProtocolCreateValidate.java

@@ -0,0 +1,37 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import javax.validation.constraints.*;
+
+@Data
+@ApiModel("设备协议创建参数")
+public class TProtocolCreateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @NotNull(message = "type参数缺失")
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+    @NotNull(message = "port参数缺失")
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @NotNull(message = "ip参数缺失")
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+}

+ 25 - 0
taphole-device/src/main/java/com/sckj/device/validate/TProtocolSearchValidate.java

@@ -0,0 +1,25 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备协议搜素参数")
+public class TProtocolSearchValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+}

+ 43 - 0
taphole-device/src/main/java/com/sckj/device/validate/TProtocolUpdateValidate.java

@@ -0,0 +1,43 @@
+package com.sckj.device.validate;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import javax.validation.constraints.*;
+
+/**
+ * 设备协议参数
+ * @author zhanghao
+ */
+@Data
+@ApiModel("设备协议更新参数")
+public class TProtocolUpdateValidate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @NotNull(message = "id参数必传")
+    @ApiModelProperty(value = "协议ID")
+    private Long id;
+
+    @NotNull(message = "no参数缺失")
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @NotNull(message = "name参数缺失")
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @NotNull(message = "type参数缺失")
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+    @NotNull(message = "port参数缺失")
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @NotNull(message = "ip参数缺失")
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+}

+ 51 - 0
taphole-device/src/main/java/com/sckj/device/vo/TCameraDetailVo.java

@@ -0,0 +1,51 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("摄像头详情Vo")
+public class TCameraDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+    @ApiModelProperty(value = "安装位置")
+    private String location;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "登录用户名")
+    private String account;
+
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    @ApiModelProperty(value = "设备启用标志(1启用 0停用)")
+    private String status;
+
+    @ApiModelProperty(value = "所属录像机id")
+    private Long vcrId;
+
+
+}

+ 42 - 0
taphole-device/src/main/java/com/sckj/device/vo/TCameraListedVo.java

@@ -0,0 +1,42 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("摄像头列表Vo")
+public class TCameraListedVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "摄像头编号")
+    private String no;
+
+    @ApiModelProperty(value = "摄像头名称")
+    private String name;
+
+    @ApiModelProperty(value = "摄像头型号")
+    private String model;
+
+    @ApiModelProperty(value = "安装位置")
+    private String location;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "设备启用标志(1启用 0停用)")
+    private String status;
+
+
+}

+ 30 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceDetailVo.java

@@ -0,0 +1,30 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备编号详情Vo")
+public class TDeviceDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+
+}

+ 43 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceListedVo.java

@@ -0,0 +1,43 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备编号列表Vo")
+public class TDeviceListedVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String no;
+
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    @ApiModelProperty(value = "设备规格")
+    private String size;
+
+    @ApiModelProperty(value = "设备类型ID")
+    private Long typeId;
+
+    @ApiModelProperty(value = "设备类型")
+    private String type;
+
+    @ApiModelProperty(value = "设备型号")
+    private String model;
+
+    @ApiModelProperty(value = "设备厂家ID")
+    private Long factoryId;
+
+    @ApiModelProperty(value = "设备厂家名称")
+    private String factoryName;
+}

+ 42 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceLocationDetailVo.java

@@ -0,0 +1,42 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备位置详情Vo")
+public class TDeviceLocationDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+    @ApiModelProperty(value = "安装日期")
+    private String installDate;
+
+    @ApiModelProperty(value = "维护日期")
+    private String protectDate;
+
+    @ApiModelProperty(value = "维护人员")
+    private String protectBy;
+
+    @ApiModelProperty(value = "维护日志")
+    private String protectLog;
+
+
+}

+ 39 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceLocationListedVo.java

@@ -0,0 +1,39 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备位置列表Vo")
+public class TDeviceLocationListedVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备位置")
+    private String deviceLocation;
+
+    @ApiModelProperty(value = "安装日期")
+    private String installDate;
+
+    @ApiModelProperty(value = "维护日期")
+    private String protectDate;
+
+    @ApiModelProperty(value = "维护人员")
+    private String protectBy;
+
+
+}

+ 24 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceTypeDetailVo.java

@@ -0,0 +1,24 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备类型详情Vo")
+public class TDeviceTypeDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+
+}

+ 21 - 0
taphole-device/src/main/java/com/sckj/device/vo/TDeviceTypeListedVo.java

@@ -0,0 +1,21 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+@ApiModel("设备类型列表Vo")
+public class TDeviceTypeListedVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "设备类型名称")
+    private String name;
+
+
+}

+ 36 - 0
taphole-device/src/main/java/com/sckj/device/vo/TProtocolDetailVo.java

@@ -0,0 +1,36 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备协议详情Vo")
+public class TProtocolDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+
+}

+ 36 - 0
taphole-device/src/main/java/com/sckj/device/vo/TProtocolListedVo.java

@@ -0,0 +1,36 @@
+package com.sckj.device.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+@Data
+@ApiModel("设备协议列表Vo")
+public class TProtocolListedVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "")
+    private Long id;
+
+    @ApiModelProperty(value = "协议编号")
+    private String no;
+
+    @ApiModelProperty(value = "协议名称")
+    private String name;
+
+    @ApiModelProperty(value = "协议类型")
+    private String type;
+
+    @ApiModelProperty(value = "端口号")
+    private String port;
+
+    @ApiModelProperty(value = "ip地址")
+    private String ip;
+
+
+}

+ 20 - 2
taphole-warn/src/main/java/com/sckj/warn/controller/TExceptionLogController.java

@@ -14,10 +14,15 @@ import com.sckj.common.core.PageResult;
 import com.sckj.common.validator.annotation.IDMust;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.io.ByteArrayOutputStream;
+import java.util.List;
 
 @RestController
 @RequestMapping("api/exception_log")
@@ -29,8 +34,7 @@ public class TExceptionLogController {
 
     @GetMapping("/list")
     @ApiOperation(value="异常情况记录列表")
-    public AjaxResult<PageResult<TExceptionLogListedVo>> list(@Validated PageValidate pageValidate,
-                                                     @Validated TExceptionLogSearchValidate searchValidate) {
+    public AjaxResult<PageResult<TExceptionLogListedVo>> list(@Validated PageValidate pageValidate, @Validated TExceptionLogSearchValidate searchValidate) {
         PageResult<TExceptionLogListedVo> list = iTExceptionLogService.list(pageValidate, searchValidate);
         return AjaxResult.success(list);
     }
@@ -66,4 +70,18 @@ public class TExceptionLogController {
         return AjaxResult.success();
     }
 
+    @Log(title = "异常情况记录导出")
+    @PostMapping("/export")
+    @ApiOperation(value="异常情况记录导出")
+    public ResponseEntity<byte[]> exportTExceptionLog(@Validated TExceptionLogSearchValidate searchValidate) {
+        ByteArrayOutputStream outputStream = iTExceptionLogService.exportTExceptionLog(searchValidate);
+        byte[] content = outputStream.toByteArray();
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Disposition", "attachment; filename=ExceptionLog.xlsx");
+        headers.add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+
+        return new ResponseEntity<>(content, headers, HttpStatus.OK);
+    }
+
 }

+ 11 - 0
taphole-warn/src/main/java/com/sckj/warn/service/ITExceptionLogService.java

@@ -8,6 +8,9 @@ import com.sckj.warn.vo.TExceptionLogListedVo;
 import com.sckj.warn.vo.TExceptionLogDetailVo;
 import com.sckj.common.core.PageResult;
 
+import java.io.ByteArrayOutputStream;
+import java.util.List;
+
 /**
  * 异常情况记录服务接口类
  * @author zhanghao
@@ -57,4 +60,12 @@ public interface ITExceptionLogService {
      */
     void del(Integer id);
 
+    /**
+     * 异常情况记录导出
+     *
+     * @author zhanghao
+     * @param searchValidate 搜索参数
+     */
+    ByteArrayOutputStream exportTExceptionLog(TExceptionLogSearchValidate searchValidate);
+
 }

+ 1 - 3
taphole-warn/src/main/java/com/sckj/warn/service/impl/TAudioServiceImpl.java

@@ -106,12 +106,10 @@ public class TAudioServiceImpl implements ITAudioService {
     @Override
     public void add(TAudioCreateValidate createValidate) {
         TAudio model = new TAudio();
-        model.setCreateBy(createValidate.getCreateBy());
         model.setCreateTime(new Date(System.currentTimeMillis()));//gg
-        model.setUpdateBy(createValidate.getUpdateBy());
         model.setUpdateTime(new Date(System.currentTimeMillis()));//gg
         model.setName(createValidate.getName());
-        model.setPath(createValidate.getPath().substring(6));//获取第六位后的字符串
+        model.setPath(createValidate.getPath());
         model.setExceptionType(createValidate.getExceptionType());
         model.setExceptionLevel(createValidate.getExceptionLevel());
         model.setStatus(createValidate.getStatus());

+ 59 - 8
taphole-warn/src/main/java/com/sckj/warn/service/impl/TExceptionLogServiceImpl.java

@@ -15,11 +15,17 @@ import com.sckj.warn.validate.TExceptionLogSearchValidate;
 import com.sckj.warn.validate.TExceptionLogUpdateValidate;
 import com.sckj.warn.vo.TExceptionLogDetailVo;
 import com.sckj.warn.vo.TExceptionLogListedVo;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
 import javax.annotation.Resource;
+import java.io.ByteArrayOutputStream;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.LinkedList;
@@ -52,10 +58,10 @@ public class TExceptionLogServiceImpl implements ITExceptionLogService {
         queryWrapper.orderByDesc("id");
 
         /*数据库时间类型为datetime不可走setSearch()*/
-        if (StringUtils.isNotEmpty(searchValidate.getCreateTimeStart()) && StringUtils.isNotEmpty(searchValidate.getCreateTimeEnd())){
-            queryWrapper.ge("create_time", searchValidate.getCreateTimeStart())
-                    .le("create_time", searchValidate.getCreateTimeEnd());
-        }
+//        if (StringUtils.isNotEmpty(searchValidate.getCreateTimeStart()) && StringUtils.isNotEmpty(searchValidate.getCreateTimeEnd())){
+//            queryWrapper.ge("create_time", searchValidate.getCreateTimeStart())
+//                    .le("create_time", searchValidate.getCreateTimeEnd());
+//        }
 
         //setSearch()时间参数移除
         /*"datetime:createTimeStart-createTimeEnd@create_time:str",
@@ -65,8 +71,6 @@ public class TExceptionLogServiceImpl implements ITExceptionLogService {
             "=:exceptionType@exception_type:int",
             "=:exceptionArea@exception_area:str",
             "=:exceptionLevel@exception_level:str",
-            "=:reportedStatus@reported_status:str",
-            "=:glId@gl_id:int",
         });
 
         IPage<TExceptionLog> iPage = tExceptionLogMapper.selectPage(new Page<>(page, limit), queryWrapper);
@@ -112,9 +116,7 @@ public class TExceptionLogServiceImpl implements ITExceptionLogService {
     @Override
     public void add(TExceptionLogCreateValidate createValidate) {
         TExceptionLog model = new TExceptionLog();
-        model.setCreateBy(createValidate.getCreateBy());
         model.setCreateTime(new Date(System.currentTimeMillis()));//gg
-        model.setUpdateBy(createValidate.getUpdateBy());
         model.setUpdateTime(new Date(System.currentTimeMillis()));//gg
         model.setExceptionType(createValidate.getExceptionType());
         model.setExceptionArea(createValidate.getExceptionArea());
@@ -161,4 +163,53 @@ public class TExceptionLogServiceImpl implements ITExceptionLogService {
         tExceptionLogMapper.delete(new QueryWrapper<TExceptionLog>().eq("id", id));
     }
 
+    /**
+     * 异常情况记录导出
+     *
+     * @author zhanghao
+     * @param searchValidate 搜索参数·
+     */
+    public ByteArrayOutputStream exportTExceptionLog(TExceptionLogSearchValidate searchValidate) {
+        Workbook workbook = new XSSFWorkbook();
+        Sheet sheet = workbook.createSheet("Persons");
+
+        QueryWrapper<TExceptionLog> queryWrapper = new QueryWrapper<>();
+        tExceptionLogMapper.setSearch(queryWrapper, searchValidate, new String[]{
+                "=:exceptionType@exception_type:int",
+                "=:exceptionArea@exception_area:str",
+                "=:exceptionLevel@exception_level:str",
+        });
+        List<TExceptionLog> tExceptionLogList = tExceptionLogMapper.selectList(new QueryWrapper<TExceptionLog>());
+
+        // 创建标题行
+        Row headerRow = sheet.createRow(0);
+        String[] columnNames = {"锅炉编号", "异常类型", "异常区域", "危害程度", "上报状态", "创建时间"};
+        for (int i = 0; i < columnNames.length; i++) {
+            Cell cell = headerRow.createCell(i);
+            cell.setCellValue(columnNames[i]);
+        }
+
+        // 填充数据
+        for (int i = 0; i < tExceptionLogList.size(); i++) {
+            Row row = sheet.createRow(i + 1);
+            TExceptionLog tExceptionLog = tExceptionLogList.get(i);
+            row.createCell(0).setCellValue(tExceptionLog.getGlId());
+            row.createCell(1).setCellValue(tExceptionLog.getExceptionType());
+            row.createCell(2).setCellValue(tExceptionLog.getExceptionArea());
+            row.createCell(3).setCellValue(tExceptionLog.getExceptionLevel());
+            row.createCell(4).setCellValue(tExceptionLog.getReportedStatus().equals("0") ? "未上报" : "已上报");
+            row.createCell(5).setCellValue(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(tExceptionLog.getCreateTime()));
+        }
+
+        // 将数据写入输出流
+        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+        try {
+            workbook.write(outputStream);
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return outputStream;
+    }
+
 }

+ 0 - 6
taphole-warn/src/main/java/com/sckj/warn/validate/TAudioCreateValidate.java

@@ -14,15 +14,9 @@ public class TAudioCreateValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "创建人")
-    private String createBy;
-
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
-    @ApiModelProperty(value = "更新人")
-    private String updateBy;
-
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
 

+ 0 - 6
taphole-warn/src/main/java/com/sckj/warn/validate/TAudioSearchValidate.java

@@ -13,12 +13,6 @@ public class TAudioSearchValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "创建人")
-    private String createBy;
-
-    @ApiModelProperty(value = "更新人")
-    private String updateBy;
-
     @ApiModelProperty(value = "音频名称")
     private String name;
 

+ 0 - 11
taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogCreateValidate.java

@@ -14,20 +14,9 @@ public class TExceptionLogCreateValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "创建人")
-    private String createBy;
-
-    @NotNull(message = "createTime参数缺失")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
-    @ApiModelProperty(value = "更新人")
-    private String updateBy;
-
-    @NotNull(message = "updateTime参数缺失")
-    @ApiModelProperty(value = "更新时间")
-    private Date updateTime;
-
     @NotNull(message = "exceptionType参数缺失")
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
     private Integer exceptionType;

+ 0 - 18
taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogSearchValidate.java

@@ -12,18 +12,6 @@ public class TExceptionLogSearchValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "开始时间")
-    private String createTimeStart;
-
-    @ApiModelProperty(value = "结束时间")
-    private String createTimeEnd;
-
-    @ApiModelProperty(value = "开始时间")
-    private String updateTimeStart;
-
-    @ApiModelProperty(value = "结束时间")
-    private String updateTimeEnd;
-
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
     private Integer exceptionType;
 
@@ -33,10 +21,4 @@ public class TExceptionLogSearchValidate implements Serializable {
     @ApiModelProperty(value = "危害程度(轻微、中等、重度)")
     private String exceptionLevel;
 
-    @ApiModelProperty(value = "上报状态,将异常事件上报至视频以及 AI 融合系统(1是 0否)")
-    private String reportedStatus;
-
-    @ApiModelProperty(value = "锅炉编号")
-    private Integer glId;
-
 }

+ 13 - 0
taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogDetailVo.java

@@ -15,5 +15,18 @@ public class TExceptionLogDetailVo implements Serializable {
     @ApiModelProperty(value = "主键")
     private Long id;
 
+    @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
+    private Integer exceptionType;
 
+    @ApiModelProperty(value = "异常区域(铁口区域,目前只有1号铁口区域)")
+    private String exceptionArea;
+
+    @ApiModelProperty(value = "危害程度(轻微、中等、重度)")
+    private String exceptionLevel;
+
+    @ApiModelProperty(value = "上报状态,将异常事件上报至视频以及 AI 融合系统(1是 0否)")
+    private String reportedStatus;
+
+    @ApiModelProperty(value = "锅炉编号")
+    private Integer glId;
 }

+ 0 - 2
taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogListedVo.java

@@ -5,8 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
-import java.util.Date;
 
 @Data
 @ApiModel("异常情况记录列表Vo")