Browse Source

问题修复,代码优化

wangxiaofei 2 months ago
parent
commit
37ddb07fa3
27 changed files with 275 additions and 180 deletions
  1. 3 0
      taphole-admin/src/main/java/com/sckj/admin/controller/AlbumsController.java
  2. 4 11
      taphole-admin/src/main/java/com/sckj/admin/service/impl/AlbumsServiceImpl.java
  3. 3 2
      taphole-admin/src/main/java/com/sckj/admin/vo/album/AlbumVo.java
  4. 5 3
      taphole-common/src/main/java/com/sckj/common/entity/album/Album.java
  5. 21 0
      taphole-common/src/main/java/com/sckj/common/enums/RefreshItemEnum.java
  6. 2 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceFactoryController.java
  7. 2 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceLocationController.java
  8. 2 0
      taphole-device/src/main/java/com/sckj/device/controller/TDeviceTypeController.java
  9. 2 0
      taphole-device/src/main/java/com/sckj/device/controller/TProtocolController.java
  10. 11 6
      taphole-iron/src/main/java/com/sckj/iron/constant/TaskNameConstants.java
  11. 3 1
      taphole-iron/src/main/java/com/sckj/iron/controller/TCameraController.java
  12. 2 0
      taphole-iron/src/main/java/com/sckj/iron/controller/TIronDataController.java
  13. 12 0
      taphole-iron/src/main/java/com/sckj/iron/controller/TIronModelController.java
  14. 12 0
      taphole-iron/src/main/java/com/sckj/iron/controller/TIronParamController.java
  15. 3 25
      taphole-iron/src/main/java/com/sckj/iron/controller/TIronStepController.java
  16. 3 3
      taphole-iron/src/main/java/com/sckj/iron/dto/WarnData.java
  17. 12 0
      taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronModelServiceImpl.java
  18. 2 1
      taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronParamServiceImpl.java
  19. 8 19
      taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronStepServiceImpl.java
  20. 126 101
      taphole-iron/src/main/java/com/sckj/iron/socketio/DeviceEventListener.java
  21. 2 0
      taphole-l2/src/main/java/com/sckj/l2/controller/TL2DataController.java
  22. 2 1
      taphole-opc/src/main/java/com/sckj/opc/controller/OPCDataController.java
  23. 2 0
      taphole-opc/src/main/java/com/sckj/opc/controller/OPCPointController.java
  24. 2 0
      taphole-opc/src/main/java/com/sckj/opc/controller/OPCServerController.java
  25. 11 0
      taphole-warn/src/main/java/com/sckj/warn/controller/TAudioController.java
  26. 14 1
      taphole-warn/src/main/java/com/sckj/warn/service/impl/TAudioServiceImpl.java
  27. 4 6
      taphole-warn/src/main/java/com/sckj/warn/service/impl/TExceptionLogServiceImpl.java

+ 3 - 0
taphole-admin/src/main/java/com/sckj/admin/controller/AlbumsController.java

@@ -11,6 +11,7 @@ import com.sckj.admin.validate.commons.IdValidate;
 import com.sckj.admin.validate.commons.IdsValidate;
 import com.sckj.admin.validate.commons.PageValidate;
 import com.sckj.admin.vo.album.AlbumVo;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import io.swagger.annotations.Api;
@@ -30,6 +31,7 @@ public class AlbumsController {
     @Resource
     IAlbumsService iAlbumsService;
 
+    @NotPower
     @GetMapping("/albumList")
     @ApiOperation(value="相册文件列表")
     public AjaxResult<PageResult<AlbumVo>> albumList(@Validated PageValidate pageValidate,
@@ -62,6 +64,7 @@ public class AlbumsController {
         return AjaxResult.success();
     }
 
+    @NotPower
     @GetMapping("/cateList")
     @ApiOperation(value="相册分类列表")
     public AjaxResult<JSONArray> cateList(@Validated AlbumSearchValidate searchValidate) {

+ 4 - 11
taphole-admin/src/main/java/com/sckj/admin/service/impl/AlbumsServiceImpl.java

@@ -22,10 +22,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 相册服务实现类
@@ -88,8 +85,8 @@ public class AlbumsServiceImpl implements IAlbumsService {
             }
             vo.setUri(UrlUtils.toAbsoluteUrl(album.getUri()));
             vo.setSize(ToolUtils.storageUnit(album.getSize()));
-            vo.setCreateTime(TimeUtils.timestampToDate(album.getCreateTime()));
-            vo.setUpdateTime(TimeUtils.timestampToDate(album.getUpdateTime()));
+//            vo.setCreateTime(TimeUtils.timestampToDate(album.getCreateTime()));
+//            vo.setUpdateTime(TimeUtils.timestampToDate(album.getUpdateTime()));
             list.add(vo);
         }
 
@@ -113,7 +110,6 @@ public class AlbumsServiceImpl implements IAlbumsService {
         Assert.notNull(album, "文件丢失!");
 
         album.setName(name);
-        album.setUpdateTime(System.currentTimeMillis() / 1000);
         albumMapper.updateById(album);
     }
 
@@ -143,7 +139,6 @@ public class AlbumsServiceImpl implements IAlbumsService {
 
         for (Album album : albums) {
             album.setCid(cid);
-            album.setUpdateTime(System.currentTimeMillis() / 1000);
             albumMapper.updateById(album);
         }
     }
@@ -170,8 +165,6 @@ public class AlbumsServiceImpl implements IAlbumsService {
         album.setExt(params.get("ext"));
         album.setUri(params.get("url"));
         album.setSize(Long.parseLong(params.get("size")));
-        album.setCreateTime(System.currentTimeMillis() / 1000);
-        album.setUpdateTime(System.currentTimeMillis() / 1000);
         albumMapper.insert(album);
         return album.getId();
     }
@@ -193,7 +186,7 @@ public class AlbumsServiceImpl implements IAlbumsService {
 
         for (Album album : albums) {
             album.setIsDelete(1);
-            album.setDeleteTime(System.currentTimeMillis() / 1000);
+            album.setDeleteTime(new Date());
             albumMapper.updateById(album);
         }
     }

+ 3 - 2
taphole-admin/src/main/java/com/sckj/admin/vo/album/AlbumVo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 @ApiModel("相册Vo")
@@ -34,9 +35,9 @@ public class AlbumVo implements Serializable {
     private String size;
 
     @ApiModelProperty(value = "创建时间")
-    private String createTime;
+    private Date createTime;
 
     @ApiModelProperty(value = "更新时间")
-    private String updateTime;
+    private Date updateTime;
 
 }

+ 5 - 3
taphole-common/src/main/java/com/sckj/common/entity/album/Album.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.eclipse.milo.opcua.stack.core.types.builtin.DateTime;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 @ApiModel("相册实体")
@@ -46,12 +48,12 @@ public class Album implements Serializable {
     private Integer isDelete;
 
     @ApiModelProperty("创建时间")
-    private Long createTime;
+    private Date createTime;
 
     @ApiModelProperty("更新时间")
-    private Long updateTime;
+    private Date updateTime;
 
     @ApiModelProperty("删除时间")
-    private Long deleteTime;
+    private Date deleteTime;
 
 }

+ 21 - 0
taphole-common/src/main/java/com/sckj/common/enums/RefreshItemEnum.java

@@ -0,0 +1,21 @@
+package com.sckj.common.enums;
+
+/**
+ * 刷新项枚举类
+ */
+public enum RefreshItemEnum {
+    STEP(1, "流程步骤"),
+    PARAM(2, "参数"),
+    MODEL(3, "模型"),
+    AUDIO(4, "报警音频");
+    /**
+     * 构造方法
+     */
+    private final int code;
+    private final String msg;
+
+    RefreshItemEnum(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+}

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

@@ -1,6 +1,7 @@
 package com.sckj.device.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.device.service.ITDeviceFactoryService;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.device.validate.TDeviceFactoryCreateValidate;
@@ -28,6 +29,7 @@ public class TDeviceFactoryController {
     @Resource
     ITDeviceFactoryService iTDeviceFactoryService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="设备厂家列表")
     public AjaxResult<PageResult<TDeviceFactoryListedVo>> list(@Validated PageValidate pageValidate,

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

@@ -2,6 +2,7 @@ package com.sckj.device.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.device.entity.TDeviceLocation;
 import com.sckj.device.service.ITDeviceLocationService;
 import com.sckj.common.validate.commons.IdValidate;
@@ -31,6 +32,7 @@ public class TDeviceLocationController {
     @Resource
     ITDeviceLocationService iTDeviceLocationService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="设备位置列表")
     public AjaxResult<PageResult<TDeviceLocationListedVo>> list(@Validated PageValidate pageValidate,

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

@@ -1,6 +1,7 @@
 package com.sckj.device.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.device.service.ITDeviceTypeService;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.device.validate.TDeviceTypeCreateValidate;
@@ -28,6 +29,7 @@ public class TDeviceTypeController {
     @Resource
     ITDeviceTypeService iTDeviceTypeService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="设备类型列表")
     public AjaxResult<PageResult<TDeviceTypeListedVo>> list(@Validated PageValidate pageValidate,

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

@@ -1,6 +1,7 @@
 package com.sckj.device.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.device.service.ITProtocolService;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.device.validate.TProtocolCreateValidate;
@@ -28,6 +29,7 @@ public class TProtocolController {
     @Resource
     ITProtocolService iTProtocolService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="设备协议列表")
     public AjaxResult<PageResult<TProtocolListedVo>> list(@Validated PageValidate pageValidate,

+ 11 - 6
taphole-iron/src/main/java/com/sckj/iron/constant/TaskNameConstants.java

@@ -2,22 +2,27 @@ package com.sckj.iron.constant;
 
 /***
  * 定时任务名称
+ * 出铁状态分为:开始出铁(1)、出铁中、出铁结束(0)
+ *
+ * 开始出铁:
+ * 出铁中:堵口预警、出铁超时报警、打泥量预计、出铁计时
+ * 出铁结束:出铁预警、出铁诊断
  */
 public class TaskNameConstants {
     //开口预警
-    public static final String TASKNAME_OPEN_WARN = "open_warn";
-    //堵口预警,出铁xxx分钟开始
+//    public static final String TASKNAME_OPEN_WARN = "open_warn";
+    //堵口预警,出铁xxx分钟开始,出铁后开始计时
     public static final String TASKNAME_CLOSURE_WARN = "closure_warn";
     //出铁预警
     public static final String TASKNAME_TAPPING_WARN = "tapping_warn";
-    //出铁超时报警
+    //出铁超时报警,开始出铁后开始计时,超过设定的时间就预警
     public static final String TASKNAME_TAPPING_TIMEOUT_WARN = "tapping_timeout_warn";
 
-    //出铁诊断,出铁结束后xxx分钟开始
+    //出铁诊断,出铁结束后xxx分钟开始,使用一次
     public static final String TASKNAME_TAPPING_TEST = "tapping_test";
-    //打泥量预计
+    //打泥量预计,开始出铁后xxx分钟开始,使用一次
     public static final String TASKNAME_HIT_MUD = "hit_mud";
-    //出铁计时
+    //出铁计时,定时器,出铁结束关闭定时,开始出铁开启定时
     public static final String TASKNAME_TAPPING_CONSTTIME = "tapping_consttime";
     //L1订阅
     public static final String TASKNAME_OPCDASUBSCRIBE = "opcdasubscribe";

+ 3 - 1
taphole-iron/src/main/java/com/sckj/iron/controller/TCameraController.java

@@ -1,6 +1,7 @@
 package com.sckj.iron.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.validate.commons.IdValidate;
@@ -243,7 +244,7 @@ public class TCameraController {
         return AjaxResult.success("成功", result);
     }
 
-
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "摄像头列表")
     public AjaxResult<PageResult<TCameraListedVo>> list(@Validated PageValidate pageValidate,
@@ -252,6 +253,7 @@ public class TCameraController {
         return AjaxResult.success(list);
     }
 
+    @NotPower
     @GetMapping("/getCameras")
     @ApiOperation(value = "摄像头列表")
     public AjaxResult<PageResult<TCameraListedVo>> getCameras(@Validated PageValidate pageValidate,

+ 2 - 0
taphole-iron/src/main/java/com/sckj/iron/controller/TIronDataController.java

@@ -1,6 +1,7 @@
 package com.sckj.iron.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.validate.commons.IdValidate;
@@ -26,6 +27,7 @@ public class TIronDataController {
     @Resource
     TIronDataServiceImpl iTIronDataService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "出铁数据列表")
     public AjaxResult<PageResult<TIronDataListedVo>> list(@Validated PageValidate pageValidate,

+ 12 - 0
taphole-iron/src/main/java/com/sckj/iron/controller/TIronModelController.java

@@ -1,8 +1,10 @@
 package com.sckj.iron.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.common.validator.annotation.IDMust;
@@ -18,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @RestController
@@ -29,6 +32,7 @@ public class TIronModelController {
     @Resource
     TIronModelServiceImpl iTIronModelService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "出铁相关模型列表")
     public AjaxResult<PageResult<TIronModelListedVo>> list(@Validated PageValidate pageValidate,
@@ -68,4 +72,12 @@ public class TIronModelController {
         return AjaxResult.success();
     }
 
+    @NotPower
+    @GetMapping("/refreshModals")
+    @ApiOperation(value = "刷新模型")
+    public AjaxResult refreshModals() {
+        iTIronModelService.refreshModel();
+        return AjaxResult.success(LocalDateTime.now());
+    }
+
 }

+ 12 - 0
taphole-iron/src/main/java/com/sckj/iron/controller/TIronParamController.java

@@ -1,6 +1,8 @@
 package com.sckj.iron.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.iron.entity.TIronParam;
 import com.sckj.iron.service.impl.TIronParamServiceImpl;
@@ -20,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @RestController
@@ -30,6 +33,7 @@ public class TIronParamController {
     @Resource
     TIronParamServiceImpl iTIronParamService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "参数设定列表")
     public AjaxResult<PageResult<TIronParamListedVo>> list(@Validated PageValidate pageValidate,
@@ -113,4 +117,12 @@ public class TIronParamController {
         return AjaxResult.success();
     }
 
+    @NotPower
+    @GetMapping("/refreshParams")
+    @ApiOperation(value = "刷新参数")
+    public AjaxResult refreshParams() {
+        iTIronParamService.refreshParams();
+        return AjaxResult.success(LocalDateTime.now());
+    }
+
 }

+ 3 - 25
taphole-iron/src/main/java/com/sckj/iron/controller/TIronStepController.java

@@ -1,10 +1,12 @@
 package com.sckj.iron.controller;
 
 
+import com.google.common.eventbus.AsyncEventBus;
 import com.sckj.common.aop.Log;
 import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.iron.service.impl.TIronStepServiceImpl;
 import com.sckj.iron.validate.TIronStepCreateValidate;
@@ -19,7 +21,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.HashMap;
 import java.util.Map;
 
 @RestController
@@ -30,6 +31,7 @@ public class TIronStepController {
     @Resource
     TIronStepServiceImpl iTIronStepService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "出铁步骤配置列表")
     public AjaxResult<PageResult<TIronStepListedVo>> list(@Validated PageValidate pageValidate,
@@ -85,29 +87,5 @@ public class TIronStepController {
         return AjaxResult.success(LocalDateTime.now());
     }
 
-    @NotPower
-    @GetMapping("/refreshParams")
-    @ApiOperation(value = "刷新参数")
-    public AjaxResult refreshParams() {
-        iTIronStepService.refreshParams();
-        return AjaxResult.success(LocalDateTime.now());
-    }
-
-    @NotPower
-    @GetMapping("/refreshModals")
-    @ApiOperation(value = "刷新模型")
-    public AjaxResult refreshModals() {
-        iTIronStepService.refreshModals();
-        return AjaxResult.success(LocalDateTime.now());
-    }
-
-    @NotPower
-    @GetMapping("/refreshAudios")
-    @ApiOperation(value = "刷新报警音频")
-    public AjaxResult refreshAudios() {
-        iTIronStepService.refreshAudios();
-        return AjaxResult.success(LocalDateTime.now());
-    }
-
 
 }

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/dto/WarnData.java

@@ -34,9 +34,9 @@ public class WarnData {
     }
 
     //开口预警
-    public static WarnData warnOpen(String desc, String alarmUrl) {
-        return WarnData.builder().type(TaskNameConstants.TASKNAME_OPEN_WARN).typeName("开口报警").desc(desc).alarmUrl(alarmUrl).build();
-    }
+//    public static WarnData warnOpen(String desc, String alarmUrl) {
+//        return WarnData.builder().type(TaskNameConstants.TASKNAME_OPEN_WARN).typeName("开口报警").desc(desc).alarmUrl(alarmUrl).build();
+//    }
 
     //出铁预警
     public static WarnData warnTapping(String desc, String alarmUrl) {

+ 12 - 0
taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronModelServiceImpl.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.AES;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.eventbus.AsyncEventBus;
 import com.sckj.common.TapholeAdminThreadLocal;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.util.UrlUtils;
 import com.sckj.common.util.YmlUtils;
 import com.sckj.common.validate.commons.PageValidate;
@@ -48,6 +50,9 @@ public class TIronModelServiceImpl extends ServiceImpl<TIronModelMapper, TIronMo
     @Resource
     TIronParamServiceImpl ironParamService;
 
+    @Resource
+    private AsyncEventBus asyncEventBus;
+
     /**
      * 出铁相关模型列表
      *
@@ -132,6 +137,7 @@ public class TIronModelServiceImpl extends ServiceImpl<TIronModelMapper, TIronMo
             model.setModelPath(null);
         }
         tIronModelMapper.insert(model);
+        refreshModel();
     }
 
     /**
@@ -188,6 +194,7 @@ public class TIronModelServiceImpl extends ServiceImpl<TIronModelMapper, TIronMo
             model.setModelPath(null);
         }
         tIronModelMapper.updateById(model);
+        refreshModel();
     }
 
     /**
@@ -205,6 +212,11 @@ public class TIronModelServiceImpl extends ServiceImpl<TIronModelMapper, TIronMo
         Assert.notNull(model, "数据不存在!");
 
         tIronModelMapper.delete(new QueryWrapper<TIronModel>().eq("id", id));
+        refreshModel();
+    }
+
+    public void refreshModel() {
+        asyncEventBus.post(RefreshItemEnum.PARAM);
     }
 
 }

+ 2 - 1
taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronParamServiceImpl.java

@@ -9,6 +9,7 @@ import com.google.common.eventbus.AsyncEventBus;
 import com.sckj.common.TapholeAdminThreadLocal;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.exception.OperateException;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.iron.dto.IronParamDTO;
@@ -239,7 +240,7 @@ public class TIronParamServiceImpl extends ServiceImpl<TIronParamMapper, TIronPa
     }
 
     public void refreshParams() {
-        asyncEventBus.post("2");
+        asyncEventBus.post(RefreshItemEnum.PARAM);
     }
 
 }

+ 8 - 19
taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronStepServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.eventbus.AsyncEventBus;
 import com.sckj.common.TapholeAdminThreadLocal;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.iron.entity.TIronStep;
 import com.sckj.iron.mapper.TIronStepMapper;
@@ -77,25 +78,6 @@ public class TIronStepServiceImpl extends ServiceImpl<TIronStepMapper, TIronStep
         return stepDTOList;
     }
 
-
-    public void refreshTreeSteps() {
-        asyncEventBus.post("1");
-    }
-
-
-    public void refreshParams() {
-        asyncEventBus.post("2");
-    }
-
-    public void refreshModals() {
-        asyncEventBus.post("3");
-    }
-
-    public void refreshAudios() {
-        asyncEventBus.post("4");
-    }
-
-
     /**
      * 出铁步骤配置列表
      *
@@ -218,6 +200,7 @@ public class TIronStepServiceImpl extends ServiceImpl<TIronStepMapper, TIronStep
         model.setConfirmMode(createValidate.getConfirmMode());
         model.setPointName(createValidate.getPointName());
         tIronStepMapper.insert(model);
+        refreshTreeSteps();
     }
 
     /**
@@ -247,6 +230,7 @@ public class TIronStepServiceImpl extends ServiceImpl<TIronStepMapper, TIronStep
         model.setConfirmMode(updateValidate.getConfirmMode());
         model.setPointName(updateValidate.getPointName());
         tIronStepMapper.updateById(model);
+        refreshTreeSteps();
     }
 
     /**
@@ -265,6 +249,11 @@ public class TIronStepServiceImpl extends ServiceImpl<TIronStepMapper, TIronStep
         Assert.notNull(model, "数据不存在!");
 
         tIronStepMapper.delete(new QueryWrapper<TIronStep>().eq("step_id", id));
+        refreshTreeSteps();
+    }
+
+    public void refreshTreeSteps() {
+        asyncEventBus.post(RefreshItemEnum.STEP);
     }
 
 }

+ 126 - 101
taphole-iron/src/main/java/com/sckj/iron/socketio/DeviceEventListener.java

@@ -5,6 +5,7 @@ import com.corundumstudio.socketio.annotation.OnEvent;
 import com.google.common.eventbus.Subscribe;
 import com.google.common.util.concurrent.AtomicDouble;
 import com.sckj.common.config.GlobalConfig;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.eventbus.EventListener;
 import com.sckj.common.manager.ScheduledTaskManager;
 import com.sckj.common.socketio.SocketUtil;
@@ -42,7 +43,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.expression.Expression;
 import org.springframework.expression.spel.standard.SpelExpressionParser;
@@ -188,13 +188,13 @@ public class DeviceEventListener extends EventListener { //
     //出铁参数
 //    private Map<String, TAudio> mIronAlarmMap;
 
-    private String alarmUrlOpen;
+    private String openAlarmUrl;
 
-    private String alarmUrlClosure;
+    private String closureAlarmUrl;
 
-    private String alramUrlTapping;
+    private String tappingAlramUrl;
 
-    private String alramUrlTappingTimeout;
+    private String tappingTimeoutAlramUrl;
 
     //节点标记
     private static final String NODE = "node";
@@ -248,10 +248,7 @@ public class DeviceEventListener extends EventListener { //
             getModels();
         });
         taskExecutor.submit(() -> {
-            TL2Data latestData = tl2DataService.getLatestData();
-            if (latestData != null) {
-                getIronTimeNo(latestData.getIronNo());
-            }
+            getIronTimeNo();
         });
     }
 
@@ -270,20 +267,21 @@ public class DeviceEventListener extends EventListener { //
         List<TAudio> list = audioService.lambdaQuery().eq(TAudio::getStatus, "1").eq(TAudio::getDelFlag, "1").list();
         if (ObjectUtils.isNotEmpty(list)) {
             for (TAudio tAudio : list) {
-                if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_OPEN_WARN)) {
-                    alarmUrlOpen = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
-                } else if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_CLOSURE_WARN)) {
-                    alarmUrlClosure = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
+//                if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_OPEN_WARN)) {
+//                    alarmUrlOpen = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
+//                } else
+                if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_CLOSURE_WARN)) {
+                    closureAlarmUrl = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
                 } else if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_TAPPING_WARN)) {
-                    alramUrlTapping = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
+                    tappingAlramUrl = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
                 } else if (Objects.equals(tAudio.getExceptionType(), TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN)) {
-                    alramUrlTappingTimeout = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
+                    tappingTimeoutAlramUrl = SERVER_URL + "/" + GlobalConfig.publicPrefix + File.separator + tAudio.getPath();
                 }
             }
-            log.info("alarmUrlOpen: " + alarmUrlOpen);
-            log.info("alarmUrlClose: " + alarmUrlClosure);
-            log.info("alramUrlTapping: " + alramUrlTapping);
-            log.info("alramUrlTappingTimeout: " + alramUrlTappingTimeout);
+            log.info("alarmUrlOpen: " + openAlarmUrl);
+            log.info("alarmUrlClose: " + closureAlarmUrl);
+            log.info("alramUrlTapping: " + tappingAlramUrl);
+            log.info("alramUrlTappingTimeout: " + tappingTimeoutAlramUrl);
         }
     }
 
@@ -383,10 +381,7 @@ public class DeviceEventListener extends EventListener { //
         }
 
         taskExecutor.submit(() -> {
-            TL2Data latestData = tl2DataService.getLatestData();
-            if (latestData != null) {
-                getIronTimeNo(latestData.getIronNo());
-            }
+            getIronTimeNo();
         });
 
 
@@ -398,13 +393,15 @@ public class DeviceEventListener extends EventListener { //
 
     /***
      * 记录出铁日期和次数,并返回给前端
-     * @param mIronNo
      */
-    private void getIronTimeNo(Long mIronNo) {
+    private void getIronTimeNo() {
         IronTimeNoDTO ironTimeNoDTO = new IronTimeNoDTO();
         String dateString = LocalDateUtils.formatDate(new Date(), DateTimeFormatter.ofPattern("MM月dd日"));
         ironTimeNoDTO.setDate(dateString);
-        ironTimeNoDTO.setIronNo(mIronNo);
+        TL2Data latestData = tl2DataService.getLatestData();
+        if(ObjectUtils.isNotEmpty(latestData)) {
+            ironTimeNoDTO.setIronNo(latestData.getIronNo());
+        }
         ironTimeNoDTO.setDesc(String.format("%s第%s次出铁", dateString, ironTimeNoDTO.getIronNo()));
         PushData.send2IronTimeNo(ironTimeNoDTO);
     }
@@ -498,13 +495,44 @@ public class DeviceEventListener extends EventListener { //
 
     }
 
+    /***
+     * 出铁计时
+     */
+    private void getIronTime() {
+        int totalSeconds = mSecondsElapsed.get();
+        int hours = totalSeconds / 3600;
+        int minutes = (totalSeconds % 3600) / 60;
+        int seconds = totalSeconds % 60;
+        String elapsedTime = String.format("%02d:%02d:%02d", hours, minutes, seconds);
+        log.info("elapsedTime:{}", elapsedTime);
+        RedisUtils.addFixedElement(TaskNameConstants.TASKNAME_TAPPING_CONSTTIME, elapsedTime, MAX_REDIS_COUNT);
+
+        RealtimeData realtimeData = new RealtimeData();
+        realtimeData.setValue(elapsedTime);
+        realtimeData.setDesc("出铁计时");
+
+        PushData.send2CostTime(realtimeData);
+
+        if ((totalSeconds / 60) > IRON_TIME.get()) {
+            //出铁超时报警
+            scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN, ScheduledTimeConstants.TAPPING_TIMEOUT_WARN_DELAY, ScheduledTimeConstants.TAPPING_TIMEOUT_WARN_PERIOD, TimeUnit.SECONDS, () -> {
+                log.info("出铁超时报警:{}", TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN);
+
+                PushData.send2Warn(WarnData.warnTappingTimeout("出铁时间超时", tappingAlramUrl));
+                taskExecutor.submit(() -> {
+                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("2").exceptionDesc("出铁时间超过设定时间").build());
+                });
+            });
+        }
+    }
+
     //1号铁口正在出铁的操作项目
     private void taphole1Start() {
         //关闭定时任务:出铁预警、开口预警
         //开启定时任务:出铁超时报警、堵口预警、打泥量选择计算、
 
         scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_TAPPING_WARN);
-        scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN);
+        scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN);
 
         //出铁计时
         scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_TAPPING_CONSTTIME, ScheduledTimeConstants.TAPPING_CONSTTIME_DELAY, ScheduledTimeConstants.TAPPING_CONSTTIME_PERIOD, TimeUnit.SECONDS, () -> {
@@ -519,19 +547,19 @@ public class DeviceEventListener extends EventListener { //
             log.info("堵口预警:{},speed1:{},speed2:{},STANDARD_SPEED:{}", speed1.get(), speed2.get(), TaskNameConstants.TASKNAME_CLOSURE_WARN);
             if (speed1.get() > STANDARD_SPEED.get() || speed2.get() > STANDARD_SPEED.get()) {
                 //流速过大可能是由于铁口深度不足或发生跑大流问题,则提示将当前铁口堵口
-                PushData.send2Warn(WarnData.warnClose("流速过快,请将当前铁口堵口", alarmUrlClosure));
+                PushData.send2Warn(WarnData.warnClose("流速过快,请将当前铁口堵口", closureAlarmUrl));
                 taskExecutor.submit(() -> {
                     exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("流速过快,请将当前铁口堵口").build());
                 });
             } else if ((speed1.get() < STANDARD_SPEED.get() || speed2.get() < STANDARD_SPEED.get()) && (ironLoading2.get() || ironLoading3.get() || ironLoading4.get())) {
                 //若流速过小,但其它铁口正在出铁,则提示将当前铁口堵口
-                PushData.send2Warn(WarnData.warnClose("流速过小,请将当前铁口堵口", alarmUrlClosure));
+                PushData.send2Warn(WarnData.warnClose("流速过小,请将当前铁口堵口", closureAlarmUrl));
                 taskExecutor.submit(() -> {
                     exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("流速过小,请将当前铁口堵口").build());
                 });
             } else if ((speed1.get() < STANDARD_SPEED.get() || speed2.get() < STANDARD_SPEED.get()) && (!ironLoading2.get() && !ironLoading3.get() && !ironLoading4.get())) {
                 //若流速过小且其他铁口均未出铁,则提示先将其它铁口打开,再进行堵口
-                PushData.send2Warn(WarnData.warnClose("请先打开其它铁口,再堵口", alarmUrlClosure));
+                PushData.send2Warn(WarnData.warnClose("请先打开其它铁口,再堵口", closureAlarmUrl));
                 taskExecutor.submit(() -> {
                     exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("请先打开其它铁口,再堵口").build());
                 });
@@ -580,45 +608,13 @@ public class DeviceEventListener extends EventListener { //
 
     }
 
-    /***
-     * 出铁计时
-     */
-    private void getIronTime() {
-        int totalSeconds = mSecondsElapsed.get();
-        int hours = totalSeconds / 3600;
-        int minutes = (totalSeconds % 3600) / 60;
-        int seconds = totalSeconds % 60;
-        String elapsedTime = String.format("%02d:%02d:%02d", hours, minutes, seconds);
-        log.info("elapsedTime:{}", elapsedTime);
-        RedisUtils.addFixedElement(TaskNameConstants.TASKNAME_TAPPING_CONSTTIME, elapsedTime, MAX_REDIS_COUNT);
-
-        RealtimeData realtimeData = new RealtimeData();
-        realtimeData.setValue(elapsedTime);
-        realtimeData.setDesc("出铁计时");
-
-        PushData.send2CostTime(realtimeData);
-
-        if ((totalSeconds / 60) > IRON_TIME.get()) {
-            //出铁超时报警
-            scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN, ScheduledTimeConstants.TAPPING_TIMEOUT_WARN_DELAY, ScheduledTimeConstants.TAPPING_TIMEOUT_WARN_PERIOD, TimeUnit.SECONDS, () -> {
-                log.info("出铁超时报警:{}", TaskNameConstants.TASKNAME_TAPPING_TIMEOUT_WARN);
-
-                PushData.send2Warn(WarnData.warnTappingTimeout("出铁时间超时", alramUrlTapping));
-                taskExecutor.submit(() -> {
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("2").exceptionDesc("出铁时间超过设定时间").build());
-                });
-            });
-
-        }
-    }
-
 
     //1号铁口结束出铁的操作项目
     private void taphole1End() {
         //由 1-> 0 表明1号铁口结束出铁
         mTotalWeight = BigDecimal.ZERO;
 //        mTotalDry = BigDecimal.ZERO;
-        scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN);
+//        scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN);
         scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_CLOSURE_WARN);
 
         scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_HIT_MUD);
@@ -629,7 +625,7 @@ public class DeviceEventListener extends EventListener { //
         mSteps = ironStepService.getTreeSteps();
 
         //开口
-        PushData.send2CancelWarn(WarnData.warnOpen("", ""));
+//        PushData.send2CancelWarn(WarnData.warnOpen("", ""));
         //堵口
         PushData.send2CancelWarn(WarnData.warnClose("", ""));
         //出铁预警
@@ -776,14 +772,13 @@ public class DeviceEventListener extends EventListener { //
             if (PRESSURE_DIFF_VALUE.get() < yc && !ironLoading1.get()) {
                 //xxx分钟延迟
                 scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_TAPPING_WARN, ScheduledTimeConstants.TAPPING_WARN_DELAY, ScheduledTimeConstants.TAPPING_WARN_PERIOD, TimeUnit.SECONDS, () -> {
-                    //堵口预警
                     log.info("出铁预警:{}", TaskNameConstants.TASKNAME_TAPPING_WARN);
-                    PushData.send2Warn(WarnData.warnTapping("压差超过阈值,请出铁", alramUrlTapping));
+                    PushData.send2Warn(WarnData.warnTapping("压差超过阈值,请出铁", tappingAlramUrl));
                     exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("压差超过阈值,请出铁").build());
                 });
             } else {
                 scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_TAPPING_WARN);
-                PushData.send2CancelWarn(WarnData.warnTapping("压差正常", alramUrlTapping));
+                PushData.send2CancelWarn(WarnData.warnTapping("压差正常", tappingAlramUrl));
             }
 
         }
@@ -821,7 +816,6 @@ public class DeviceEventListener extends EventListener { //
         PushData.send2RealtimeData(mRealtimeData);
         //推送实时状态
         PushData.send2RealtimeStatus(mRealtimeStatus);
-
     }
 
     private synchronized void operate(OPCData mOPCData) {
@@ -866,12 +860,12 @@ public class DeviceEventListener extends EventListener { //
 
     }
 
-    private String uuid;
+    private String stepLogId;
 
     //计算每步结果
     private synchronized void setStepResult(List<IronStepVO> mSteps) {
         boolean foundFalsePass = false;
-        //发现第一个pass是false,后续都为false,包括父项子项
+        //发现第一个pass是false,后续都为false,包括父项、子项、孙子项
         for (IronStepVO stepDTO : mSteps) {
             for (IronStepVO child : stepDTO.getChilds()) {
                 for (IronStepVO grandchild : child.getChilds()) {
@@ -907,16 +901,16 @@ public class DeviceEventListener extends EventListener { //
         }
         taskExecutor.execute(() -> {
             //记录每个步骤
-            if (ObjectUtils.isNotEmpty(uuid)) {
-                TIronStepLog stepLog = null;
-                try {
-                    stepLog = new TIronStepLog();
-                    stepLog.setStepLogId(uuid);
-                    BeanUtils.copyProperties(stepDTO, stepLog);
-                    ironStepLogService.insertOrUpdate(stepLog);
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    log.error(">>>>>> {}", stepLog);
+            if (ObjectUtils.isNotEmpty(stepLogId)) {
+                synchronized (stepLogId){
+                    try {
+                        TIronStepLog stepLog = new TIronStepLog();
+                        stepLog.setStepLogId(stepLogId);
+                        BeanUtils.copyProperties(stepDTO, stepLog);
+                        ironStepLogService.insertOrUpdate(stepLog);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
             }
         });
@@ -964,6 +958,21 @@ public class DeviceEventListener extends EventListener { //
 
     }
 
+    /***
+     * 验证客户端是否在线
+     * @param client
+     * @return 如果在线返回当前客户ID
+     */
+    private String validateClientOnline(SocketIOClient client){
+        String userId;
+        if (ObjectUtils.isEmpty(client) || ObjectUtils.isEmpty(userId = SocketUtil.clientUserIds.get(client))) {
+            log.info("该客户已下线");
+            PushData.send2Operation("该客户已下线", false);
+            return null;
+        }
+        return userId;
+    }
+
 
     /***
      * 用户端点击触发
@@ -972,10 +981,8 @@ public class DeviceEventListener extends EventListener { //
      */
     @OnEvent(value = PushData.IRON_CONFIRM)
     public void confirmIron(SocketIOClient client, IronStepDTO message) {
-        String userId;
-        if (ObjectUtils.isEmpty(client) || ObjectUtils.isEmpty(userId = SocketUtil.clientUserIds.get(client))) {
-            log.info("该客户已下线");
-            PushData.send2Operation("该客户已下线", false);
+        String userId = validateClientOnline(client);
+        if(null == userId){
             return;
         }
 
@@ -1003,16 +1010,16 @@ public class DeviceEventListener extends EventListener { //
                 getTheoryWeight(tl2DataList);
             } else if (STEP_YPQRCT.equals(stepDTO.getIdentifier()) && stepDTO.getPassResult() == 1) {
                 //炉前在接受到炉内出铁要求后,10分钟内打开铁口,未打开系统告警并记录
-                scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_OPEN_WARN, ScheduledTimeConstants.OPEN_WARN_DELAY, ScheduledTimeConstants.OPEN_WARN_PERIOD, TimeUnit.SECONDS, () -> {
-                    log.info("开口预警:{}", TaskNameConstants.TASKNAME_OPEN_WARN);
-
-                    // 出铁预警,打开系统告警并记录
-                    PushData.send2Warn(WarnData.warnOpen("请立即打开铁口", alarmUrlOpen));
-                    taskExecutor.submit(() -> {
-                        exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("1").exceptionDesc("打开铁口超时").build());
-                    });
-//                    scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN); // 终止定时器
-                });
+//                scheduledTaskManager.addTask(TaskNameConstants.TASKNAME_OPEN_WARN, ScheduledTimeConstants.OPEN_WARN_DELAY, ScheduledTimeConstants.OPEN_WARN_PERIOD, TimeUnit.SECONDS, () -> {
+//                    log.info("开口预警:{}", TaskNameConstants.TASKNAME_OPEN_WARN);
+//
+//                    // 出铁预警,打开系统告警并记录
+//                    PushData.send2Warn(WarnData.warnOpen("请立即打开铁口", alarmUrlOpen));
+//                    taskExecutor.submit(() -> {
+//                        exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("1").exceptionDesc("打开铁口超时").build());
+//                    });
+////                    scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN); // 终止定时器
+//                });
             }
 
             for (IronStepVO child : stepDTO.getChilds()) {
@@ -1051,7 +1058,7 @@ public class DeviceEventListener extends EventListener { //
                     && Objects.equals("ylgc", stepDTO.getIdentifier())
                     && Objects.equals(1, stepDTO.getData())
             ) {
-                uuid = UUID.randomUUID().toString().replace("-", "");
+                stepLogId = UUID.randomUUID().toString().replace("-", "");
             }
 
             //这里手动记录时间
@@ -1070,18 +1077,36 @@ public class DeviceEventListener extends EventListener { //
      */
     @OnEvent(value = PushData.IRON_CANCEL_WARN)
     public void cancelWarn(SocketIOClient client, WarnData message) {
+        if(null == validateClientOnline(client)){
+            return;
+        }
         if (ObjectUtils.isNotEmpty(message)) {
             scheduledTaskManager.cancelTask(message.getType());
         }
     }
 
     /***
+     * 客户端主动获取出铁日期和次数
+     * @param client
+     */
+    @OnEvent(value = PushData.IRON_TIME_NO)
+    public void pushIronTimeNo(SocketIOClient client,String flag) {
+        if(null == validateClientOnline(client)){
+            return;
+        }
+        getIronTimeNo();
+    }
+
+    /***
      * 用户端连接后进行开始
      * @param client
      * @param message
      */
     @OnEvent(value = PushData.IRON_START)
     public void ironStart(SocketIOClient client, IronStepDTO message) {
+        if(null == validateClientOnline(client)){
+            return;
+        }
         setStepResult(mSteps);
         PushData.send2Operation(mSteps, ironLoading1.get());
     }
@@ -1091,22 +1116,22 @@ public class DeviceEventListener extends EventListener { //
      * 数据库更改后调用接口刷新步骤
      */
     @Subscribe
-    public void onIronStep(String refresh) {
-        switch (refresh) {
-            case "1":
+    public void onIronStep(RefreshItemEnum refreshItemEnum) {
+        switch (refreshItemEnum) {
+            case STEP:
                 mSteps = ironStepService.getTreeSteps();
                 log.info("流程步骤数据刷新:{}", LocalDateTime.now());
                 PushData.send2Operation(mSteps, ironLoading1.get());
                 break;
-            case "2":
+            case PARAM:
                 getIronParams();
                 log.info("参数数据刷新:{}", LocalDateTime.now());
                 break;
-            case "3":
+            case MODEL:
                 getModels();
                 log.info("模型数据刷新:{}", LocalDateTime.now());
                 break;
-            case "4":
+            case AUDIO:
                 getAudios();
                 log.info("音频数据刷新:{}", LocalDateTime.now());
                 break;

+ 2 - 0
taphole-l2/src/main/java/com/sckj/l2/controller/TL2DataController.java

@@ -2,6 +2,7 @@ package com.sckj.l2.controller;
 
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.validate.commons.PageValidate;
@@ -25,6 +26,7 @@ public class TL2DataController {
     @Resource
     TL2DataServiceImpl iTL2DataService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "出铁数据列表")
     public AjaxResult<PageResult<TL2DataListedVo>> list(@Validated PageValidate pageValidate,

+ 2 - 1
taphole-opc/src/main/java/com/sckj/opc/controller/OPCDataController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sckj.common.aop.Log;
 import com.sckj.common.aop.NotLogin;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.common.validate.commons.PageValidate;
@@ -26,7 +27,7 @@ public class OPCDataController {
     @Resource
     OPCDataServiceImpl opcDataService;
 
-    @NotLogin
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value = "列表")
     public AjaxResult<Object> list(@Validated PageValidate pageValidate, @Validated OPCData opcPoint) {

+ 2 - 0
taphole-opc/src/main/java/com/sckj/opc/controller/OPCPointController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sckj.common.aop.Log;
 import com.sckj.common.aop.NotLogin;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.validate.commons.IdValidate;
@@ -32,6 +33,7 @@ public class OPCPointController {
     @Resource
     OPCPointServiceImpl iTOpcPointService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="OPC订阅点列表")
     public AjaxResult<PageResult<TOpcPointListedVo>> list(@Validated PageValidate pageValidate,

+ 2 - 0
taphole-opc/src/main/java/com/sckj/opc/controller/OPCServerController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sckj.common.aop.Log;
 import com.sckj.common.aop.NotLogin;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.validate.commons.IdValidate;
@@ -32,6 +33,7 @@ public class OPCServerController {
     @Resource
     OPCServerServiceImpl iTOpcServerService;
 
+    @NotPower
     @GetMapping("/list")
     @ApiOperation(value="opc服务器列表")
     public AjaxResult<PageResult<TOpcServerListedVo>> list(@Validated PageValidate pageValidate,

+ 11 - 0
taphole-warn/src/main/java/com/sckj/warn/controller/TAudioController.java

@@ -1,8 +1,10 @@
 package com.sckj.warn.controller;
 
 import com.sckj.common.aop.Log;
+import com.sckj.common.aop.NotPower;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.common.validator.annotation.IDMust;
@@ -18,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @RestController
@@ -90,4 +93,12 @@ public class TAudioController {
         return iTAudioService.searchPath(Long.valueOf(idValidate.getId()));
     }
 
+    @NotPower
+    @GetMapping("/refreshAudios")
+    @ApiOperation(value = "刷新报警音频")
+    public AjaxResult refreshAudios() {
+        iTAudioService.refreshAudio();
+        return AjaxResult.success(LocalDateTime.now());
+    }
+
 }

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

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.eventbus.AsyncEventBus;
 import com.sckj.common.TapholeAdminThreadLocal;
 import com.sckj.common.core.AjaxResult;
+import com.sckj.common.enums.RefreshItemEnum;
 import com.sckj.common.exception.OperateException;
 import com.sckj.common.util.*;
 import com.sckj.common.validate.commons.PageValidate;
@@ -41,6 +43,9 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
     @Resource
     TAudioMapper tAudioMapper;
 
+    @Resource
+    private AsyncEventBus asyncEventBus;
+
     /**
      * 音频列表
      *
@@ -138,6 +143,7 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
         }
         //默认新增的音频初始状态为停用
         tAudioMapper.insert(model);
+        refreshAudio();
     }
 
     /**
@@ -176,6 +182,7 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
             model.setDuration("0");
         }
         tAudioMapper.updateById(model);
+        refreshAudio();
         return 1;
     }
 
@@ -213,6 +220,7 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
         model.setUpdateBy(String.valueOf(TapholeAdminThreadLocal.getAdminUsername()));
         model.setStatus(updateValidate.getStatus());
         tAudioMapper.updateById(model);
+        refreshAudio();
         return AjaxResult.success();
     }
 
@@ -232,7 +240,7 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
         Assert.notNull(model, "数据不存在!");
 
         model.setDelFlag("0");
-
+        refreshAudio();
         tAudioMapper.updateById(model);
     }
 
@@ -270,7 +278,12 @@ public class TAudioServiceImpl extends ServiceImpl<TAudioMapper, TAudio> {
         TAudio model = new TAudio();
         model.setDelFlag("0");
         tAudioMapper.update(model, new QueryWrapper<TAudio>().in("id", ids));
+        refreshAudio();
         return AjaxResult.success();
     }
 
+    public void refreshAudio() {
+        asyncEventBus.post(RefreshItemEnum.AUDIO);
+    }
+
 }

+ 4 - 6
taphole-warn/src/main/java/com/sckj/warn/service/impl/TExceptionLogServiceImpl.java

@@ -4,13 +4,10 @@ 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.AjaxResult;
-import com.sckj.common.util.ExcelUtils;
-import com.sckj.common.util.StringUtils;
-import com.sckj.warn.entity.TAudio;
-import com.sckj.warn.dto.WarnDTO;
 import com.sckj.common.core.PageResult;
-import com.sckj.common.util.TimeUtils;
+import com.sckj.common.util.ExcelUtils;
 import com.sckj.common.validate.commons.PageValidate;
+import com.sckj.warn.dto.WarnDTO;
 import com.sckj.warn.entity.TExceptionLog;
 import com.sckj.warn.mapper.TExceptionLogMapper;
 import com.sckj.warn.validate.TExceptionLogCreateValidate;
@@ -37,7 +34,6 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
 /**
  * 异常情况记录实现类
@@ -260,4 +256,6 @@ public class TExceptionLogServiceImpl  {
     }
 
 
+
+
 }