瀏覽代碼

1.统一修改token-name为token
2.完善大屏接口部分
3.异常情况表添加异常描述

wangxiaofei 3 周之前
父節點
當前提交
1bd3a373bb

+ 1 - 1
taphole-admin/src/main/resources/application-dev.yml

@@ -39,7 +39,7 @@ camera:
   rtmp:
     rtmphost: 127.0.0.1:1935
     httphost: 127.0.0.1:80
-    webrtchost: 192.168.110.130:8000
+    webrtchost: 150.158.22.179:8000
 
 socketio:
  # host: 127.0.0.1		#主机名,默认是 0.0.0.0 (这个设不设置无所谓,因为后面的 SocketConfig 类一般不用设置这个)

+ 1 - 1
taphole-admin/src/main/resources/application.yml

@@ -53,7 +53,7 @@ mybatis-plus:
 
 # Sa-token配置
 sa-token:
-  token-name: like-admin  # token的名称
+  token-name: token  # token的名称
   timeout: 2592000        # token有效期单位s(默认30天,-1代表永不过期)
   activity-timeout: -1    # token临时有效期(指定时间无操作掉线)
   is-concurrent: true     # 是否允许同一账号并发登录

+ 7 - 3
taphole-common/src/main/java/com/sckj/common/util/RedisUtils.java

@@ -681,19 +681,23 @@ public class RedisUtils {
      * @param key
      * @return
      */
-    public static List<Object> getFixedElement(String key) {
+    public static List getFixedElement(String key, int size) {
         // 获取列表中的所有元素
-        return redisTemplate.opsForList().range(key, 0, -1);
+        if (size <= 0) {
+            size = -1;
+        }
+        return redisTemplate.opsForList().range(key, 0, size - 1);
     }
 
     /***
-     * 获取定数量最新的条数据
+     * 获取定数量最新的size条数据
      * @param key
      * @return
      */
     public static Object getFixedLatestElement(String key) {
         // 获取列表中的所有元素
         // 获取列表第一个元素(索引0)
+
         List<Object> result = redisTemplate.opsForList().range(key, 0, 0);
         return ObjectUtils.isEmpty(result) ? null : result.get(0);
     }

+ 1 - 0
taphole-common/src/main/java/com/sckj/common/validate/commons/PageValidate.java

@@ -1,6 +1,7 @@
 package com.sckj.common.validate.commons;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.DecimalMax;

+ 22 - 6
taphole-iron/src/main/java/com/sckj/iron/controller/TIronVisualScreenController.java

@@ -19,6 +19,9 @@ import com.sckj.iron.socketio.DeviceEventListener;
 import com.sckj.iron.validate.IronLoginValidate;
 import com.sckj.iron.validate.TIronDataSearchScreenValidate;
 import com.sckj.iron.vo.IronLoginVo;
+import com.sckj.warn.dto.WarnDTO;
+import com.sckj.warn.service.impl.TExceptionLogServiceImpl;
+import com.sckj.warn.validate.TExceptionLogSearchValidate;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ObjectUtils;
@@ -60,6 +63,11 @@ public class TIronVisualScreenController {
     @Resource
     TIronParamServiceImpl iTIronParamService;
 
+    @Resource
+    TExceptionLogServiceImpl exceptionLogService;
+
+    private static final int DATA_COUNT = 6;
+
     @NotLogin
     @PostMapping("/login")
     @ApiOperation(value = "登录系统")
@@ -85,7 +93,7 @@ public class TIronVisualScreenController {
     @PostMapping("/getIronElement")
     @ApiOperation(value = "获取铁水成分数据")
     public AjaxResult getIronElement() {
-        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_ELEMENT);
+        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_ELEMENT, DATA_COUNT);
         return AjaxResult.success(vo);
     }
 
@@ -96,7 +104,7 @@ public class TIronVisualScreenController {
     @PostMapping("/getIronSpeed")
     @ApiOperation(value = "获取铁水流速数据")
     public AjaxResult getIronSpeed() {
-        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_SPEED);
+        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_SPEED, DATA_COUNT);
         return AjaxResult.success(vo);
     }
 
@@ -107,7 +115,7 @@ public class TIronVisualScreenController {
     @PostMapping("/getIronWeight")
     @ApiOperation(value = "获取铁流量数据")
     public AjaxResult getIronWeight() {
-        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_WEIGHT);
+        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_WEIGHT, DATA_COUNT);
         return AjaxResult.success(vo);
     }
 
@@ -118,7 +126,7 @@ public class TIronVisualScreenController {
     @PostMapping("/getIronTemp")
     @ApiOperation(value = "获取铁水温度数据")
     public AjaxResult getIronTemp() {
-        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_TEMP);
+        List vo = RedisUtils.getFixedElement(DeviceEventListener.IRON_TEMP, DATA_COUNT);
         return AjaxResult.success(vo);
     }
 
@@ -184,7 +192,7 @@ public class TIronVisualScreenController {
     }
 
     @PostMapping("/getIronParams")
-    @ApiOperation(value = "获取出铁参数设置(paramType=>出铁诊断模型参数:iron_judge,摄像头轮播时长参数:camera_param,大屏趋势图轮播项:iron_trend)")
+    @ApiOperation(value = "获取出铁参数设置:paramType=>[(出铁诊断模型参数:iron_judge),(摄像头轮播时长参数:camera_param),(趋势图轮播项:iron_trend]")
     public AjaxResult getIronParam(String paramType) {
         List<TIronParam> list = iTIronParamService.lambdaQuery().eq(TIronParam::getStatus, "1")
                 .eq(TIronParam::getParamType, paramType).orderByAsc(TIronParam::getSort).list();
@@ -199,7 +207,7 @@ public class TIronVisualScreenController {
 
     @Log(title = "更新出铁参数设置")
     @PostMapping("/updateIronParams")
-    @ApiOperation(value = "更新出铁参数设置")
+    @ApiOperation(value = "更新出铁参数设置:paramType=>[(出铁诊断模型参数:iron_judge),(摄像头轮播时长参数:camera_param),(趋势图轮播项:iron_trend]")
     public AjaxResult<Object> updateIronParam(@RequestBody List<IronParamDTO> ironParamList) {
         if (ObjectUtils.isEmpty(ironParamList)) {
             return AjaxResult.failed("传入数据为空!");
@@ -209,4 +217,12 @@ public class TIronVisualScreenController {
     }
 
 
+    @PostMapping("/getWarnList")
+    @ApiOperation(value = "获取报警统计")
+    public AjaxResult getWarnList() {
+        List<WarnDTO> mapList = exceptionLogService.selectWarnStats();
+        return AjaxResult.success(mapList);
+    }
+
+
 }

+ 2 - 0
taphole-iron/src/main/java/com/sckj/iron/service/impl/IronLoginServiceImpl.java

@@ -97,6 +97,8 @@ public class IronLoginServiceImpl {
             IronLoginVo vo = new IronLoginVo();
             vo.setId(sysAdmin.getId());
             vo.setToken(StpUtil.getTokenValue());
+            vo.setUsername(sysAdmin.getUsername());
+            vo.setNickname(sysAdmin.getNickname());
 
             return vo;
         } catch (Exception e) {

+ 3 - 1
taphole-iron/src/main/java/com/sckj/iron/service/impl/TIronDataServiceImpl.java

@@ -145,10 +145,12 @@ public class TIronDataServiceImpl extends ServiceImpl<TIronDataMapper, TIronData
                 .eq(ObjectUtils.isNotEmpty(ironData.getIronCosttime()), TIronData::getIronCosttime, ironData.getIronCosttime())
                 .eq(ObjectUtils.isNotEmpty(ironData.getIronNo()), TIronData::getIronNo, ironData.getIronNo())
                 .eq(ObjectUtils.isNotEmpty(ironData.getTapholeId()), TIronData::getTapholeId, ironData.getTapholeId())
+                .orderByAsc(TIronData::getIronNo);
         ;
-        if (StringUtils.isNotBlank(ironData.getIronStarttime()) && StringUtils.isNotBlank(ironData.getIronEndtime())){
+        if (StringUtils.isNotBlank(ironData.getIronStarttime()) && StringUtils.isNotBlank(ironData.getIronEndtime())) {
             queryWrapper.lambda().between(TIronData::getCreateTime, ironData.getIronStarttime(), ironData.getIronEndtime());
         }
+
         return list(queryWrapper);
     }
 

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

@@ -24,6 +24,7 @@ import com.sckj.opc.opcua.L2DataServiceImpl;
 import com.sckj.opc.service.OPCDataServiceImpl;
 import com.sckj.opc.utils.CustomUtil;
 import com.sckj.warn.service.ITExceptionLogService;
+import com.sckj.warn.validate.TExceptionLogCreateValidate;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
@@ -87,7 +88,7 @@ public class DeviceEventListener extends EventListener {
     OPCDataServiceImpl opcDataService;
 
     @Resource
-    ITExceptionLogService iTExceptionLogService;
+    ITExceptionLogService exceptionLogService;
 
     //1号出铁状态标记
     private static final String TAG_TAPHOLE1_STATUS = "AOD25606.PV";
@@ -268,7 +269,7 @@ public class DeviceEventListener extends EventListener {
         //将L2实时数据保存到Redis
         taskExecutor.submit(() -> {
             RedisUtils.addFixedElement(IRON_ELEMENT, l2Data, MAX_REDIS_COUNT);
-            PushData.send2TrendIronElement(RedisUtils.getFixedElement(IRON_ELEMENT));
+            PushData.send2TrendIronElement(RedisUtils.getFixedElement(IRON_ELEMENT, MAX_REDIS_COUNT));
         });
 
         taskExecutor.submit(() -> {
@@ -282,21 +283,21 @@ public class DeviceEventListener extends EventListener {
                     //处理子项
                     for (IronStepVO child : stepDTO.getChilds()) {
                         if (STEP_TLC.equals(child.getIdentifier())) {
-                            List<TL2Data> latest2Data = tl2DataService.getLatest2Data();
+                            List<L2Data> latest2Data = (List<L2Data>) RedisUtils.getFixedElement(IRON_ELEMENT, 2);
                             if (latest2Data.size() >= 2) {
                                 HashMap[] hashMaps = new HashMap[6];
                                 child.setExtraInfo(hashMaps);
                                 //理论出铁量 = 矿批 × 综合品位 × 1.06
                                 //铁量差 = 理论出铁量 - 实际出铁量
-                                TL2Data tl2Data1Last = latest2Data.get(0);
-                                double llLast = tl2Data1Last.getTotalDry() * 1.0 * 1.06;
-                                double ironWeightLast = tl2Data1Last.getIronWeight();
-                                double tlcLast = llLast - ironWeightLast;
+                                L2Data tl2Data1Last = latest2Data.get(0);
+                                BigDecimal llLast = new BigDecimal(tl2Data1Last.getTotalDry()).multiply(new BigDecimal(1.0)).multiply(new BigDecimal(1.06));
+                                BigDecimal ironWeightLast = new BigDecimal(tl2Data1Last.getIronWeight());
+                                BigDecimal tlcLast = llLast.subtract(ironWeightLast);
 
-                                TL2Data tl2Data1LastLast = latest2Data.get(1);
-                                double llLastLast = tl2Data1LastLast.getTotalDry() * 1.0 * 1.06;
-                                double ironWeightLastLast = tl2Data1Last.getIronWeight();
-                                double tlcLastLast = llLastLast - ironWeightLastLast;
+                                L2Data tl2Data1LastLast = latest2Data.get(1);
+                                BigDecimal llLastLast = new BigDecimal(tl2Data1LastLast.getTotalDry()).multiply(new BigDecimal(1.0)).multiply(new BigDecimal(1.06));
+                                BigDecimal ironWeightLastLast = new BigDecimal(tl2Data1Last.getIronWeight());
+                                BigDecimal tlcLastLast = llLastLast.subtract(ironWeightLastLast);
 
                                 //铁量差在合理范围内
                                 // 上一次铁量差:-30       上上次铁量差:20 t
@@ -359,7 +360,7 @@ public class DeviceEventListener extends EventListener {
     }
 
     //1号铁口正在出铁的操作项目
-    private void taphole1Start(L2Data mL2Data) {
+    private void taphole1Start() {
         //通过“预判和确认出铁”标记开始出铁
         boolean isReady = false;
 
@@ -390,10 +391,10 @@ public class DeviceEventListener extends EventListener {
 //      Date ironTime = mOPCData.getServerTime();
 //      lastIronEndTimeRecently
         //获取总干量
-        BigDecimal totalDry = new BigDecimal(ObjectUtils.defaultIfNull(mL2Data.getTotalDry(), "0"));
-        //计算出理论铁量
-        BigDecimal multiply = totalDry.multiply(new BigDecimal(1.0)).multiply(new BigDecimal(1.0));
-        //
+//        BigDecimal totalDry = new BigDecimal(ObjectUtils.defaultIfNull(mL2Data.getTotalDry(), "0"));
+//        //计算出理论铁量
+//        BigDecimal multiply = totalDry.multiply(new BigDecimal(1.0)).multiply(new BigDecimal(1.0));
+
 //        float totalSpeed = speed1.add(speed2);
 //        if (totalSpeed > 0) {
 //            //理论时间
@@ -409,23 +410,25 @@ public class DeviceEventListener extends EventListener {
             if (speed1.compareTo(STANDARD_SPEED) > 0 || speed2.compareTo(STANDARD_SPEED) > 0) {
                 //流速过大可能是由于铁口深度不足或发生跑大流问题,则提示将当前铁口堵口
                 PushData.send2Warn(WarnData.warnClose("流速过快,请将当前铁口堵口"));
+                exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("流速过快,请将当前铁口堵口").build());
             } else if ((speed1.compareTo(STANDARD_SPEED) < 0 || speed2.compareTo(STANDARD_SPEED) < 0) && (ironLoading2.get() || ironLoading3.get() || ironLoading4.get())) {
                 //若流速过小,但其它铁口正在出铁,则提示将当前铁口堵口
                 PushData.send2Warn(WarnData.warnClose("流速过小,请将当前铁口堵口"));
+                exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("流速过小,请将当前铁口堵口").build());
             } else if ((speed1.compareTo(STANDARD_SPEED) < 0 || speed2.compareTo(STANDARD_SPEED) < 0) && (!ironLoading2.get() && !ironLoading3.get() && !ironLoading4.get())) {
                 //若流速过小且其他铁口均未出铁,则提示先将其它铁口打开,再进行堵口
                 PushData.send2Warn(WarnData.warnClose("请先打开其它铁口,再堵口"));
+                exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("请先打开其它铁口,再堵口").build());
             }
         });
 
-        //开始计算打泥量,通过打泥量公式
+        //xxx分钟出铁后开始计算打泥量,通过打泥量公式
         //打泥量公式关联因素:铁口深度、钻杆直径、
         //调用打泥量模型,计算预计使用多少打泥量进行堵口
         scheduledTaskManager.addTask(TASKNAME_HIT_MUD, 0, 30, TimeUnit.SECONDS, () -> {
             log.info("堵口预警:{},speed1:{},speed2:{},STANDARD_SPEED:{}", speed1, speed2, TASKNAME_HIT_MUD);
-            String dryString = totalDry.toPlainString();
-            //
-            //堵口预警
+
+            //计算打泥量
             //计算理论铁量= 矿批 × 综合品位 × 1.06,其中矿批是指L2中的干量
             scheduledTaskManager.cancelTask(TASKNAME_HIT_MUD);
         });
@@ -514,7 +517,7 @@ public class DeviceEventListener extends EventListener {
                 mRealtimeData.put(IRON_TEMP, realtimeData);
                 //redis添加数据
                 RedisUtils.addFixedElement(IRON_TEMP, realtimeData, MAX_REDIS_COUNT);
-                PushData.send2TrendIronTemp(RedisUtils.getFixedElement(IRON_TEMP));
+                PushData.send2TrendIronTemp(RedisUtils.getFixedElement(IRON_TEMP, MAX_REDIS_COUNT));
             } else if (opcData.getPointName().contains(TAG_CAR11) || opcData.getPointName().contains(TAG_CAR12)) {
 //            1TH-1号车受铁速度
                 RealtimeData realtimeData = new RealtimeData();
@@ -550,7 +553,7 @@ public class DeviceEventListener extends EventListener {
                 ) {
                     ironSpeed.setTime(LocalDateUtils.formatDate(opcData.getServerTime()));
                     RedisUtils.addFixedElement(IRON_SPEED, ironSpeed, MAX_REDIS_COUNT);
-                    PushData.send2TrendIronSpeed(RedisUtils.getFixedElement(IRON_SPEED));
+                    PushData.send2TrendIronSpeed(RedisUtils.getFixedElement(IRON_SPEED, MAX_REDIS_COUNT));
                 }
             } else if (opcData.getPointName().contains(TAG_TAPHOLE1_STATUS)) {
                 RealtimeData realtimeData = new RealtimeData();
@@ -561,7 +564,7 @@ public class DeviceEventListener extends EventListener {
                 ironLoading1.set("1".equals(opcData.getData().toString()));
 
                 if (ironLoading1.get()) {
-                    taphole1Start(l2Data);
+                    taphole1Start();
                 } else {
                     taphole1End();
                 }
@@ -594,7 +597,7 @@ public class DeviceEventListener extends EventListener {
 
                 ironWeight.setTime(LocalDateUtils.formatDate(opcData.getServerTime()));
                 RedisUtils.addFixedElement(IRON_WEIGHT, ironWeight, MAX_REDIS_COUNT);
-                PushData.send2TrendIronWeight(RedisUtils.getFixedElement(IRON_WEIGHT));
+                PushData.send2TrendIronWeight(RedisUtils.getFixedElement(IRON_WEIGHT, MAX_REDIS_COUNT));
 
             } else if (opcData.getPointName().contains(FLUSH_STATUS)) {
                 RealtimeData realtimeData = new RealtimeData();
@@ -611,6 +614,7 @@ public class DeviceEventListener extends EventListener {
                     //堵口预警
                     log.info("出铁预警:{}", TASKNAME_TAPPING_WARN);
                     PushData.send2Warn(WarnData.warnTapping("压差超过阈值,请出铁"));
+                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("压差超过阈值,请出铁").build());
                 });
             } else {
                 scheduledTaskManager.cancelTask(TASKNAME_TAPPING_WARN);
@@ -796,13 +800,9 @@ public class DeviceEventListener extends EventListener {
         log.info("--->userId : {}", userId);
         for (IronStepVO stepDTO : mSteps) {
             for (IronStepVO child : stepDTO.getChilds()) {
-                if (validateManualData(message, userId, child)) {
-                    return;
-                }
-            }
-            if (validateManualData(message, userId, stepDTO)) {
-                return;
+                validateManualData(message, userId, child);
             }
+            validateManualData(message, userId, stepDTO);
         }
 
         setStepResult(mSteps);

+ 1 - 0
taphole-iron/src/main/java/com/sckj/iron/validate/TIronDataSearchScreenValidate.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 @ApiModel("出铁数据搜素参数")

+ 7 - 0
taphole-iron/src/main/java/com/sckj/iron/vo/IronLoginVo.java

@@ -18,4 +18,11 @@ public class IronLoginVo implements Serializable {
     @ApiModelProperty(value = "登录令牌")
     private String token;
 
+    @ApiModelProperty(value = "昵称")
+    private String nickname;
+
+
+    @ApiModelProperty(value = "用户名")
+    private String username;
+
 }

+ 6 - 0
taphole-opc/src/main/java/com/sckj/opc/dto/L2Data.java

@@ -55,21 +55,27 @@ public class L2Data implements Serializable {
     private String ironEndtime;
 
     //铁水成分 碳
+    @ApiModelProperty(value = "碳")
     private String elementC;
 
     //铁水成分 硅
+    @ApiModelProperty(value = "硅")
     private String elementSi;
 
     //铁水成分 锰
+    @ApiModelProperty(value = "锰")
     private String elementMn;
 
     //铁水成分 磷
+    @ApiModelProperty(value = "磷")
     private String elementP;
 
     //铁水成分 硫
+    @ApiModelProperty(value = "硫")
     private String elementS;
 
     //铁水成分 钛
+    @ApiModelProperty(value = "钛")
     private String elementTi;
 
 

+ 20 - 0
taphole-warn/src/main/java/com/sckj/warn/dto/WarnDTO.java

@@ -0,0 +1,20 @@
+package com.sckj.warn.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiOperation("报警统计")
+public class WarnDTO  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("报警日期")
+    private String warnDate;
+
+    @ApiModelProperty("报警次数")
+    private String warnCount;
+}

+ 9 - 0
taphole-warn/src/main/java/com/sckj/warn/mapper/TExceptionLogMapper.java

@@ -1,13 +1,22 @@
 package com.sckj.warn.mapper;
 
 import com.sckj.common.core.basics.IBaseMapper;
+import com.sckj.warn.dto.WarnDTO;
 import com.sckj.warn.entity.TExceptionLog;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 异常情况记录Mapper
  * @author zhanghao
  */
 @Mapper
 public interface TExceptionLogMapper extends IBaseMapper<TExceptionLog> {
+    /***
+     * 查询预警统计
+     * @return
+     */
+    List<WarnDTO> selectWarnStats();
 }

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.util.StringUtils;
 import com.sckj.warn.entity.TAudio;
+import com.sckj.warn.dto.WarnDTO;
 import com.sckj.warn.service.ITExceptionLogService;
 import com.sckj.common.core.PageResult;
 import com.sckj.common.util.TimeUtils;
@@ -33,6 +34,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 异常情况记录实现类
@@ -232,4 +234,13 @@ public class TExceptionLogServiceImpl implements ITExceptionLogService {
         return outputStream;
     }
 
+    /***
+     * 查询预警统计
+     * @return
+     */
+    public List<WarnDTO> selectWarnStats(){
+        return tExceptionLogMapper.selectWarnStats();
+    }
+
+
 }

+ 6 - 2
taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogCreateValidate.java

@@ -2,6 +2,7 @@ package com.sckj.warn.validate;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
@@ -10,12 +11,11 @@ import java.util.Date;
 
 @Data
 @ApiModel("异常情况记录创建参数")
+@Builder
 public class TExceptionLogCreateValidate implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @ApiModelProperty(value = "创建时间")
-    private Date createTime;
 
     @NotNull(message = "exceptionType参数缺失")
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
@@ -29,6 +29,10 @@ public class TExceptionLogCreateValidate implements Serializable {
     @ApiModelProperty(value = "危害程度(轻微、中等、重度)")
     private String exceptionLevel;
 
+    @NotNull(message = "exceptionDesc参数缺失")
+    @ApiModelProperty(value = "异常描述")
+    private String exceptionDesc;
+
     @NotNull(message = "reportedStatus参数缺失")
     @ApiModelProperty(value = "上报状态,将异常事件上报至视频以及 AI 融合系统(1是 0否)")
     private String reportedStatus;

+ 13 - 0
taphole-warn/src/main/resources/mapper/TExceptionLogMapper.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckj.warn.mapper.TExceptionLogMapper">
+
+
+    <select id="selectWarnStats" resultType="com.sckj.warn.dto.WarnDTO" >
+        select  DATE_FORMAT(create_time, '%Y-%m-%d') as warnDate,count(1)  warnCount from t_exception_log GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
+        limit 7
+    </select>
+
+
+
+</mapper>