Browse Source

问题修复,代码优化

wangxiaofei 1 month ago
parent
commit
61736d046d
31 changed files with 378 additions and 115 deletions
  1. 2 0
      taphole-admin/src/main/java/com/sckj/admin/service/impl/SettingDictDataServiceImpl.java
  2. 2 2
      taphole-device/src/main/java/com/sckj/device/controller/TProtocolController.java
  3. 1 1
      taphole-device/src/main/java/com/sckj/device/service/impl/TProtocolServiceImpl.java
  4. 2 2
      taphole-iron/src/main/java/com/sckj/iron/entity/TIronData.java
  5. 7 7
      taphole-iron/src/main/java/com/sckj/iron/socketio/DeviceEventListener.java
  6. 2 2
      taphole-iron/src/main/java/com/sckj/iron/validate/TIronDataSearchScreenValidate.java
  7. 2 2
      taphole-iron/src/main/java/com/sckj/iron/validate/TIronDataSearchValidate.java
  8. 3 3
      taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataCreateValidate.java
  9. 3 3
      taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataSearchValidate.java
  10. 3 3
      taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataUpdateValidate.java
  11. 2 2
      taphole-iron/src/main/java/com/sckj/iron/vo/TIronDataDetailVo.java
  12. 2 2
      taphole-iron/src/main/java/com/sckj/iron/vo/TIronDataListedVo.java
  13. 3 3
      taphole-iron/src/main/java/com/sckj/iron/vo/TL2DataDetailVo.java
  14. 3 3
      taphole-iron/src/main/java/com/sckj/iron/vo/TL2DataListedVo.java
  15. 19 10
      taphole-l2/src/main/java/com/sckj/l2/controller/TL2DataController.java
  16. 6 6
      taphole-l2/src/main/java/com/sckj/l2/dto/L2Data.java
  17. 1 1
      taphole-l2/src/main/java/com/sckj/l2/dto/TL2DataDTO.java
  18. 15 12
      taphole-l2/src/main/java/com/sckj/l2/entity/TL2Data.java
  19. 43 6
      taphole-l2/src/main/java/com/sckj/l2/service/impl/TL2DataServiceImpl.java
  20. 2 2
      taphole-l2/src/main/java/com/sckj/l2/validate/TL2DataSearchValidate.java
  21. 74 0
      taphole-l2/src/main/java/com/sckj/l2/vo/TL2DataDetailVo.java
  22. 19 19
      taphole-l2/src/main/java/com/sckj/l2/vo/TL2DataListedVo.java
  23. 17 16
      taphole-warn/src/main/java/com/sckj/warn/controller/TExceptionLogController.java
  24. 5 1
      taphole-warn/src/main/java/com/sckj/warn/entity/TExceptionLog.java
  25. 7 0
      taphole-warn/src/main/java/com/sckj/warn/mapper/TExceptionLogMapper.java
  26. 18 0
      taphole-warn/src/main/java/com/sckj/warn/service/impl/TExceptionLogServiceImpl.java
  27. 1 5
      taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogCreateValidate.java
  28. 8 1
      taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogSearchValidate.java
  29. 55 0
      taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogExportVo.java
  30. 1 1
      taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogListedVo.java
  31. 50 0
      taphole-warn/src/main/resources/mapper/TExceptionLogMapper.xml

+ 2 - 0
taphole-admin/src/main/java/com/sckj/admin/service/impl/SettingDictDataServiceImpl.java

@@ -159,6 +159,7 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService {
         Assert.isNull(dictDataMapper.selectOne(new QueryWrapper<DictData>()
                 .select("id")
                 .eq("name", createValidate.getName())
+                .eq("type_id", createValidate.getTypeId())
                 .eq("is_delete", 0)
                 .last("limit 1")), "字典数据已存在!");
 
@@ -193,6 +194,7 @@ public class SettingDictDataServiceImpl implements ISettingDictDataService {
                 .select("id")
                 .ne("id", updateValidate.getId())
                 .eq("name", updateValidate.getName())
+                .eq("type_id", updateValidate.getTypeId())
                 .eq("is_delete", 0)
                 .last("limit 1")), "字典数据已存在!");
 

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

@@ -47,8 +47,8 @@ public class TProtocolController {
     @PostMapping("/add")
     @ApiOperation(value="设备协议新增")
     public AjaxResult<Object> add(@Validated @RequestBody TProtocolCreateValidate createValidate) {
-        if (iTProtocolService.add(createValidate) == 0){
-            return AjaxResult.failed("设备协议新增失败");
+        if (iTProtocolService.add(createValidate) == -2){
+            return AjaxResult.failed("IP地址格式或端口号错误");
         }
         return AjaxResult.success();
     }

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

@@ -103,7 +103,7 @@ public class TProtocolServiceImpl implements ITProtocolService {
     public int add(TProtocolCreateValidate createValidate) {
         TProtocol model = new TProtocol();
         if (!checkPortAndIp(createValidate.getPort(), createValidate.getIp())){
-            return 0;
+            return -2;
         }
         model.setCreateTime(new Date(System.currentTimeMillis()));
         model.setCreateBy(String.valueOf(TapholeAdminThreadLocal.getAdminUsername()));

+ 2 - 2
taphole-iron/src/main/java/com/sckj/iron/entity/TIronData.java

@@ -48,12 +48,12 @@ public class TIronData implements Serializable {
     @ApiModelProperty(value = "出铁次数编号")
     @ExcelProperty("出铁次数编号")
     @ColumnWidth(25)
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
     @ExcelProperty("出铁时间")
     @ColumnWidth(25)
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
     @ExcelProperty("实际出铁量")

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

@@ -521,19 +521,19 @@ public class DeviceEventListener extends EventListener { //
                 //流速过大可能是由于铁口深度不足或发生跑大流问题,则提示将当前铁口堵口
                 PushData.send2Warn(WarnData.warnClose("流速过快,请将当前铁口堵口", alarmUrlClosure));
                 taskExecutor.submit(() -> {
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("流速过快,请将当前铁口堵口").build());
+                    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));
                 taskExecutor.submit(() -> {
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("流速过小,请将当前铁口堵口").build());
+                    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));
                 taskExecutor.submit(() -> {
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("请先打开其它铁口,再堵口").build());
+                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("请先打开其它铁口,再堵口").build());
                 });
             }
         });
@@ -605,7 +605,7 @@ public class DeviceEventListener extends EventListener { //
 
                 PushData.send2Warn(WarnData.warnTappingTimeout("出铁时间超时", alramUrlTapping));
                 taskExecutor.submit(() -> {
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(2).exceptionDesc("出铁时间超过设定时间").build());
+                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("2").exceptionDesc("出铁时间超过设定时间").build());
                 });
             });
 
@@ -650,7 +650,7 @@ public class DeviceEventListener extends EventListener { //
             //出铁时间
             //String ironCosttime = fixedLatestElement.getI
             //实际出铁量
-            String ironWeight = fixedLatestElement.getIronWeight();
+            Double ironWeight = fixedLatestElement.getIronWeight();
 
 //            TIronData ironData = new TIronData();
 //            BeanUtils.copyProperties(ironData, fixedLatestElement);
@@ -779,7 +779,7 @@ public class DeviceEventListener extends EventListener { //
                     //堵口预警
                     log.info("出铁预警:{}", TaskNameConstants.TASKNAME_TAPPING_WARN);
                     PushData.send2Warn(WarnData.warnTapping("压差超过阈值,请出铁", alramUrlTapping));
-                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(4).exceptionDesc("压差超过阈值,请出铁").build());
+                    exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("4").exceptionDesc("压差超过阈值,请出铁").build());
                 });
             } else {
                 scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_TAPPING_WARN);
@@ -1009,7 +1009,7 @@ public class DeviceEventListener extends EventListener { //
                     // 出铁预警,打开系统告警并记录
                     PushData.send2Warn(WarnData.warnOpen("请立即打开铁口", alarmUrlOpen));
                     taskExecutor.submit(() -> {
-                        exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType(1).exceptionDesc("打开铁口超时").build());
+                        exceptionLogService.add(TExceptionLogCreateValidate.builder().exceptionType("1").exceptionDesc("打开铁口超时").build());
                     });
 //                    scheduledTaskManager.cancelTask(TaskNameConstants.TASKNAME_OPEN_WARN); // 终止定时器
                 });

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

@@ -22,10 +22,10 @@ public class TIronDataSearchScreenValidate implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
     private Double ironWeight;

+ 2 - 2
taphole-iron/src/main/java/com/sckj/iron/validate/TIronDataSearchValidate.java

@@ -20,10 +20,10 @@ public class TIronDataSearchValidate implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
     private Double ironWeight;

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataCreateValidate.java

@@ -23,15 +23,15 @@ public class TL2DataCreateValidate implements Serializable {
 
     @NotNull(message = "ironNo参数缺失")
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @NotNull(message = "ironCosttime参数缺失")
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @NotNull(message = "ironWeight参数缺失")
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @NotNull(message = "slagWeight参数缺失")
     @ApiModelProperty(value = "实际渣量")

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataSearchValidate.java

@@ -19,13 +19,13 @@ public class TL2DataSearchValidate implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "实际渣量")
     private String slagWeight;

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/validate/TL2DataUpdateValidate.java

@@ -32,15 +32,15 @@ public class TL2DataUpdateValidate implements Serializable {
 
     @NotNull(message = "ironNo参数缺失")
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @NotNull(message = "ironCosttime参数缺失")
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @NotNull(message = "ironWeight参数缺失")
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @NotNull(message = "slagWeight参数缺失")
     @ApiModelProperty(value = "实际渣量")

+ 2 - 2
taphole-iron/src/main/java/com/sckj/iron/vo/TIronDataDetailVo.java

@@ -24,10 +24,10 @@ public class TIronDataDetailVo implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
     private Double ironWeight;

+ 2 - 2
taphole-iron/src/main/java/com/sckj/iron/vo/TIronDataListedVo.java

@@ -24,10 +24,10 @@ public class TIronDataListedVo implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
     private Double ironWeight;

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/vo/TL2DataDetailVo.java

@@ -23,13 +23,13 @@ public class TL2DataDetailVo implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "实际渣量")
     private String slagWeight;

+ 3 - 3
taphole-iron/src/main/java/com/sckj/iron/vo/TL2DataListedVo.java

@@ -26,13 +26,13 @@ public class TL2DataListedVo implements Serializable {
     private String tapholeId;
 
     @ApiModelProperty(value = "出铁次数编号")
-    private String ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "实际渣量")
     private String slagWeight;

+ 19 - 10
taphole-l2/src/main/java/com/sckj/l2/controller/TL2DataController.java

@@ -1,13 +1,13 @@
 package com.sckj.l2.controller;
 
 
+import com.sckj.common.aop.Log;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
-import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.common.validate.commons.PageValidate;
-import com.sckj.common.validator.annotation.IDMust;
 import com.sckj.l2.service.impl.TL2DataServiceImpl;
 import com.sckj.l2.validate.TL2DataSearchValidate;
+import com.sckj.l2.vo.TL2DataDetailVo;
 import com.sckj.l2.vo.TL2DataListedVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -15,6 +15,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 
 @RestController
 @RequestMapping("api/l2")
@@ -25,20 +26,28 @@ public class TL2DataController {
     TL2DataServiceImpl iTL2DataService;
 
     @GetMapping("/list")
-    @ApiOperation(value="出铁数据列表")
+    @ApiOperation(value = "出铁数据列表")
     public AjaxResult<PageResult<TL2DataListedVo>> list(@Validated PageValidate pageValidate,
                                                         @Validated TL2DataSearchValidate searchValidate) {
         PageResult<TL2DataListedVo> list = iTL2DataService.list(pageValidate, searchValidate);
         return AjaxResult.success(list);
     }
 
-//
-//    @GetMapping("/detail")
-//    @ApiOperation(value="出铁数据详情")
-//    public AjaxResult<TL2DataDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
-//        TL2DataDetailVo detail = iTL2DataService.detail(id);
-//        return AjaxResult.success(detail);
-//    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value = "出铁数据详情")
+    public AjaxResult<TL2DataDetailVo> detail(@RequestParam("id") Long id) {
+        TL2DataDetailVo detail = iTL2DataService.detail(id);
+        return AjaxResult.success(detail);
+    }
+
+    @Log(title = "数据统计")
+    @PostMapping("/export")
+    @ApiOperation(value = "数据统计")
+    public void exportTExceptionLog(@Validated TL2DataSearchValidate searchValidate, HttpServletResponse response) {
+        iTL2DataService.exportL2DataList(searchValidate, response);
+    }
+
 //
 //
 //    @PostMapping("/add")

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

@@ -22,10 +22,10 @@ public class L2Data implements Serializable {
     private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "实际渣量")
     private String slagWeight;
@@ -79,8 +79,8 @@ public class L2Data implements Serializable {
     public void toDataStream(DataOutputStream dos) throws Exception {
         dos.writeUTF(tapholeId);
         dos.writeLong(ironNo);
-        dos.writeUTF(ironCosttime);
-        dos.writeUTF(ironWeight);
+        dos.writeInt(ironCosttime);
+        dos.writeDouble(ironWeight);
         dos.writeUTF(slagWeight);
         dos.writeUTF(avgTemp);
         dos.writeUTF(mudWeight);
@@ -101,8 +101,8 @@ public class L2Data implements Serializable {
         L2Data data = new L2Data();
         data.tapholeId = dis.readUTF();
         data.ironNo = dis.readLong();
-        data.ironCosttime = dis.readUTF();
-        data.ironWeight = dis.readUTF();
+        data.ironCosttime = dis.readInt();
+        data.ironWeight = dis.readDouble();
         data.slagWeight = dis.readUTF();
         data.avgTemp = dis.readUTF();
         data.mudWeight = dis.readUTF();

+ 1 - 1
taphole-l2/src/main/java/com/sckj/l2/dto/TL2DataDTO.java

@@ -20,7 +20,7 @@ public class TL2DataDTO {
 
     @ApiModelProperty(value = "铁流量")
     @ExcelIgnore
-    private String ironWeight;
+    private Double ironWeight;
 
 
     @ApiModelProperty(value = "铁水流速")

+ 15 - 12
taphole-l2/src/main/java/com/sckj/l2/entity/TL2Data.java

@@ -49,11 +49,13 @@ public class TL2Data implements Serializable {
     @ColumnWidth(25)
     private Long ironNo;
 
+    //计算公式中需要设置类型为double
     @ApiModelProperty(value = "出铁时间")
     @ExcelProperty("出铁时间(min)")
     @ColumnWidth(25)
-    private String ironCosttime;
+    private Integer ironCosttime;
 
+    //计算公式中需要设置类型为double
     @ApiModelProperty(value = "实际出铁量")
     @ExcelProperty("实际出铁量(t)")
     @ColumnWidth(25)
@@ -62,22 +64,23 @@ public class TL2Data implements Serializable {
     @ApiModelProperty(value = "实际渣量")
     @ExcelProperty("实际渣量(t)")
     @ColumnWidth(25)
-    private String slagWeight;
+    private Double slagWeight;
 
     @ApiModelProperty(value = "铁水平均温度")
     @ExcelProperty("铁水平均温度(℃)")
-    @ColumnWidth(25)
-    private String avgTemp;
+    @ColumnWidth(30)
+    private Double avgTemp;
 
     @ApiModelProperty(value = "泥炮量")
     @ExcelProperty("铁水平均温度(L)")
     @ColumnWidth(25)
-    private String mudWeight;
+    private Double mudWeight;
 
     @ApiModelProperty(value = "钻杆直径")
     @ExcelIgnore
-    private String pollMm;
+    private Double pollMm;
 
+    //计算公式中需要设置类型为double
     @ApiModelProperty(value = "开口深度")
     @ExcelIgnore
     private Double openDepth;
@@ -96,27 +99,27 @@ public class TL2Data implements Serializable {
 
     @ApiModelProperty(value = "碳")
     @ExcelIgnore
-    private String elementC;
+    private Double elementC;
 
     @ApiModelProperty(value = "硅")
     @ExcelIgnore
-    private String elementSi;
+    private Double elementSi;
 
     @ApiModelProperty(value = "锰")
     @ExcelIgnore
-    private String elementMn;
+    private Double elementMn;
 
     @ApiModelProperty(value = "磷")
     @ExcelIgnore
-    private String elementP;
+    private Double elementP;
 
     @ApiModelProperty(value = "硫")
     @ExcelIgnore
-    private String elementS;
+    private Double elementS;
 
     @ApiModelProperty(value = "钛")
     @ExcelIgnore
-    private String elementTi;
+    private Double elementTi;
 
     @ApiModelProperty(value = "理论铁量")
     @ExcelIgnore

+ 43 - 6
taphole-l2/src/main/java/com/sckj/l2/service/impl/TL2DataServiceImpl.java

@@ -15,10 +15,12 @@ import com.sckj.l2.dto.TrendRequest;
 import com.sckj.l2.entity.TL2Data;
 import com.sckj.l2.mapper.TL2DataMapper;
 import com.sckj.l2.validate.TL2DataSearchValidate;
+import com.sckj.l2.vo.TL2DataDetailVo;
 import com.sckj.l2.vo.TL2DataListedVo;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -37,7 +39,6 @@ public class TL2DataServiceImpl extends ServiceImpl<TL2DataMapper, TL2Data> {
     @Resource
     TL2DataMapper tL2DataMapper;
 
-
     /**
      * 出铁数据列表
      *
@@ -51,11 +52,10 @@ public class TL2DataServiceImpl extends ServiceImpl<TL2DataMapper, TL2Data> {
         Integer limit = pageValidate.getPageSize();
 
         QueryWrapper<TL2Data> queryWrapper = new QueryWrapper<>();
-        if(ObjectUtils.isNotEmpty(searchValidate.getAvgTemp())){
-
-        }
-        queryWrapper.orderByDesc("iron_no");
-
+//        if(ObjectUtils.isNotEmpty(searchValidate.getAvgTemp())){
+//
+//        }
+        queryWrapper.lambda().orderByDesc(TL2Data::getIronNo);
 
 
         IPage<TL2Data> iPage = tL2DataMapper.selectPage(new Page<>(page, limit), queryWrapper);
@@ -70,6 +70,26 @@ public class TL2DataServiceImpl extends ServiceImpl<TL2DataMapper, TL2Data> {
         return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
     }
 
+    /**
+     * 出铁数据详情
+     *
+     * @param id 主键参数
+     * @return TL2Data
+     * @author LikeAdmin
+     */
+    public TL2DataDetailVo detail(Long id) {
+        TL2Data model = tL2DataMapper.selectOne(
+                new QueryWrapper<TL2Data>()
+                        .eq("id", id)
+                        .last("limit 1"));
+
+        Assert.notNull(model, "数据不存在");
+
+        TL2DataDetailVo vo = new TL2DataDetailVo();
+        BeanUtils.copyProperties(model, vo);
+        return vo;
+    }
+
 
     /***
      * 获取最新2条数据
@@ -152,5 +172,22 @@ public class TL2DataServiceImpl extends ServiceImpl<TL2DataMapper, TL2Data> {
         }
     }
 
+    /**
+     * 数据统计
+     *
+     * @param searchValidate
+     * @param response
+     */
+    public void exportL2DataList(TL2DataSearchValidate searchValidate, HttpServletResponse response) {
+        QueryWrapper<TL2Data> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().orderByDesc(TL2Data::getIronNo);
+        List<TL2Data> tl2DataList = tL2DataMapper.selectList(queryWrapper);
+        try {
+            ExcelUtils.exportExcel(tl2DataList, TL2Data.class, "数据统计", "数据统计", response);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
 
 }

+ 2 - 2
taphole-l2/src/main/java/com/sckj/l2/validate/TL2DataSearchValidate.java

@@ -13,10 +13,10 @@ public class TL2DataSearchValidate implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "理论铁量")
     private String theoryWeight;

+ 74 - 0
taphole-l2/src/main/java/com/sckj/l2/vo/TL2DataDetailVo.java

@@ -0,0 +1,74 @@
+package com.sckj.l2.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ApiModel("出铁数据详情Vo")
+public class TL2DataDetailVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "出铁次数编号")
+    private Long ironNo;
+
+    @ApiModelProperty(value = "出铁时间")
+    private Integer ironCosttime;
+
+    @ApiModelProperty(value = "实际出铁量")
+    private Double ironWeight;
+
+    @ApiModelProperty(value = "理论铁量")
+    private Double theoryWeight;
+
+    @ApiModelProperty(value = "实际渣量")
+    private Double slagWeight;
+
+    @ApiModelProperty(value = "铁水平均温度")
+    private Double avgTemp;
+
+    @ApiModelProperty(value = "泥炮量")
+    private Double mudWeight;
+
+    @ApiModelProperty(value = "钻杆直径")
+    private Double pollMm;
+
+    @ApiModelProperty(value = "开口深度")
+    private Double openDepth;
+
+    @ApiModelProperty(value = "上料总干量")
+    private Double totalDry;
+
+    @ApiModelProperty(value = "开始时间")
+    private String ironStarttime;
+
+    @ApiModelProperty(value = "结束时间")
+    private String ironEndtime;
+
+    @ApiModelProperty(value = "碳")
+    private Double elementC;
+
+    @ApiModelProperty(value = "硅")
+    private Double elementSi;
+
+    @ApiModelProperty(value = "锰")
+    private Double elementMn;
+
+    @ApiModelProperty(value = "磷")
+    private Double elementP;
+
+    @ApiModelProperty(value = "硫")
+    private Double elementS;
+
+    @ApiModelProperty(value = "钛")
+    private Double elementTi;
+
+
+}

+ 19 - 19
taphole-l2/src/main/java/com/sckj/l2/vo/TL2DataListedVo.java

@@ -1,13 +1,10 @@
 package com.sckj.l2.vo;
 
-import com.alibaba.excel.annotation.ExcelProperty;
-import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 
 @Data
 @ApiModel("出铁数据列表Vo")
@@ -15,35 +12,38 @@ public class TL2DataListedVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
     @ApiModelProperty(value = "出铁次数编号")
-    private Integer ironNo;
+    private Long ironNo;
 
     @ApiModelProperty(value = "出铁时间")
-    private String ironCosttime;
+    private Integer ironCosttime;
 
     @ApiModelProperty(value = "实际出铁量")
-    private String ironWeight;
+    private Double ironWeight;
 
     @ApiModelProperty(value = "理论铁量")
-    private String theoryWeight;
+    private Double theoryWeight;
 
     @ApiModelProperty(value = "实际渣量")
-    private String slagWeight;
+    private Double slagWeight;
 
     @ApiModelProperty(value = "铁水平均温度")
-    private String avgTemp;
+    private Double avgTemp;
 
     @ApiModelProperty(value = "泥炮量")
-    private String mudWeight;
+    private Double mudWeight;
 
     @ApiModelProperty(value = "钻杆直径")
-    private String pollMm;
+    private Double pollMm;
 
     @ApiModelProperty(value = "开口深度")
-    private String openDepth;
+    private Double openDepth;
 
     @ApiModelProperty(value = "上料总干量")
-    private String totalDry;
+    private Double totalDry;
 
     @ApiModelProperty(value = "开始时间")
     private String ironStarttime;
@@ -52,22 +52,22 @@ public class TL2DataListedVo implements Serializable {
     private String ironEndtime;
 
     @ApiModelProperty(value = "碳")
-    private String elementC;
+    private Double elementC;
 
     @ApiModelProperty(value = "硅")
-    private String elementSi;
+    private Double elementSi;
 
     @ApiModelProperty(value = "锰")
-    private String elementMn;
+    private Double elementMn;
 
     @ApiModelProperty(value = "磷")
-    private String elementP;
+    private Double elementP;
 
     @ApiModelProperty(value = "硫")
-    private String elementS;
+    private Double elementS;
 
     @ApiModelProperty(value = "钛")
-    private String elementTi;
+    private Double elementTi;
 
 
 }

+ 17 - 16
taphole-warn/src/main/java/com/sckj/warn/controller/TExceptionLogController.java

@@ -3,6 +3,7 @@ package com.sckj.warn.controller;
 import com.sckj.common.aop.Log;
 import com.sckj.common.core.AjaxResult;
 import com.sckj.common.core.PageResult;
+import com.sckj.common.util.ExcelUtils;
 import com.sckj.common.validate.commons.IdValidate;
 import com.sckj.common.validate.commons.PageValidate;
 import com.sckj.common.validator.annotation.IDMust;
@@ -21,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayOutputStream;
 import java.util.List;
 
@@ -33,14 +35,14 @@ public class TExceptionLogController {
     TExceptionLogServiceImpl iTExceptionLogService;
 
     @GetMapping("/list")
-    @ApiOperation(value="异常情况记录列表")
+    @ApiOperation(value = "异常情况记录列表")
     public AjaxResult<PageResult<TExceptionLogListedVo>> list(@Validated PageValidate pageValidate, @Validated TExceptionLogSearchValidate searchValidate) {
         PageResult<TExceptionLogListedVo> list = iTExceptionLogService.list(pageValidate, searchValidate);
         return AjaxResult.success(list);
     }
 
     @GetMapping("/detail")
-    @ApiOperation(value="异常情况记录详情")
+    @ApiOperation(value = "异常情况记录详情")
     public AjaxResult<TExceptionLogDetailVo> detail(@Validated @IDMust() @RequestParam("id") Integer id) {
         TExceptionLogDetailVo detail = iTExceptionLogService.detail(id);
         return AjaxResult.success(detail);
@@ -48,7 +50,7 @@ public class TExceptionLogController {
 
     @Log(title = "异常情况记录新增")
     @PostMapping("/add")
-    @ApiOperation(value="异常情况记录新增")
+    @ApiOperation(value = "异常情况记录新增")
     public AjaxResult<Object> add(@Validated @RequestBody TExceptionLogCreateValidate createValidate) {
         iTExceptionLogService.add(createValidate);
         return AjaxResult.success();
@@ -56,7 +58,7 @@ public class TExceptionLogController {
 
     @Log(title = "异常情况记录编辑")
     @PostMapping("/edit")
-    @ApiOperation(value="异常情况记录编辑")
+    @ApiOperation(value = "异常情况记录编辑")
     public AjaxResult<Object> edit(@Validated @RequestBody TExceptionLogUpdateValidate updateValidate) {
         iTExceptionLogService.edit(updateValidate);
         return AjaxResult.success();
@@ -64,7 +66,7 @@ public class TExceptionLogController {
 
     @Log(title = "异常情况记录删除")
     @PostMapping("/del")
-    @ApiOperation(value="异常情况记录删除")
+    @ApiOperation(value = "异常情况记录删除")
     public AjaxResult<Object> del(@Validated @RequestBody IdValidate idValidate) {
         iTExceptionLogService.del(idValidate.getId());
         return AjaxResult.success();
@@ -72,23 +74,22 @@ public class TExceptionLogController {
 
     @Log(title = "异常情况记录批量删除")
     @PostMapping("/del_ex")
-    @ApiOperation(value="异常情况记录批量删除")
+    @ApiOperation(value = "异常情况记录批量删除")
     public AjaxResult<Object> del_ex(@RequestBody List<Long> ids) {
         return iTExceptionLogService.del_ex(ids);
     }
 
     @Log(title = "异常情况记录导出")
     @PostMapping("/export")
-    @ApiOperation(value="异常情况记录导出")
-    public ResponseEntity<byte[]> exportTExceptionLog(@Validated TExceptionLogSearchValidate searchValidate) {
-        ByteArrayOutputStream outputStream = iTExceptionLogService.exportTExceptionLog(searchValidate);
-        byte[] content = outputStream.toByteArray();
-        System.out.println("导出的字节长度:" + content.length);
-        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);
+    @ApiOperation(value = "异常情况记录导出")
+    public void exportTExceptionLog(@Validated TExceptionLogSearchValidate searchValidate, HttpServletResponse response) {
+//        ByteArrayOutputStream outputStream = iTExceptionLogService.exportTExceptionLog(searchValidate);
+//        byte[] content = outputStream.toByteArray();
+//        System.out.println("导出的字节长度:" + content.length);
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.add("Content-Disposition", "attachment; filename=ExceptionLog.xlsx");
+//        headers.add("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        iTExceptionLogService.exportExceptionLogList(searchValidate, response);
     }
 
 }

+ 5 - 1
taphole-warn/src/main/java/com/sckj/warn/entity/TExceptionLog.java

@@ -37,7 +37,7 @@ public class TExceptionLog implements Serializable {
     private Long id;
 
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
-    private Integer exceptionType;
+    private String exceptionType;
 
     @ApiModelProperty(value = "异常区域(铁口区域,目前只有1号铁口区域)")
     private String exceptionArea;
@@ -53,4 +53,8 @@ public class TExceptionLog implements Serializable {
 
     @ApiModelProperty(value = "铁口区域编号")
     private String tapholeId;
+
+    @ApiModelProperty(value = "异常描述")
+    private String exceptionDesc;
+
 }

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

@@ -3,6 +3,7 @@ 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 com.sckj.warn.vo.TExceptionLogExportVo;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -19,4 +20,10 @@ public interface TExceptionLogMapper extends IBaseMapper<TExceptionLog> {
      * @return
      */
     List<WarnDTO> selectWarnStats();
+
+    /***
+     * 导出
+     * @return
+     */
+    List<TExceptionLogExportVo> exportExceptionLogList();
 }

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

@@ -4,6 +4,7 @@ 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;
@@ -16,6 +17,7 @@ import com.sckj.warn.validate.TExceptionLogCreateValidate;
 import com.sckj.warn.validate.TExceptionLogSearchValidate;
 import com.sckj.warn.validate.TExceptionLogUpdateValidate;
 import com.sckj.warn.vo.TExceptionLogDetailVo;
+import com.sckj.warn.vo.TExceptionLogExportVo;
 import com.sckj.warn.vo.TExceptionLogListedVo;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
@@ -28,7 +30,9 @@ import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.LinkedList;
@@ -241,5 +245,19 @@ public class TExceptionLogServiceImpl  {
         return tExceptionLogMapper.selectWarnStats();
     }
 
+    /**
+     * 异常统计
+     * @param searchValidate
+     * @param response
+     */
+    public void exportExceptionLogList(TExceptionLogSearchValidate searchValidate, HttpServletResponse response){
+        List<TExceptionLogExportVo> tExceptionLogExportVos = tExceptionLogMapper.exportExceptionLogList();
+        try {
+            ExcelUtils.exportExcel(tExceptionLogExportVos, TExceptionLogExportVo.class, "异常统计", "异常统计", response);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
 
 }

+ 1 - 5
taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogCreateValidate.java

@@ -19,11 +19,7 @@ public class TExceptionLogCreateValidate implements Serializable {
 
     @NotNull(message = "exceptionType参数缺失")
     @ApiModelProperty(value = "异常类型(1开口耗时、2出铁时间、3出铁量、4流速、5铁水温度变化、6压力值、7堵口)")
-    private Integer exceptionType;
-
-//    @NotNull(message = "exceptionArea参数缺失")
-//    @ApiModelProperty(value = "异常区域(铁口区域,目前只有1号铁口区域)")
-//    private String exceptionArea;
+    private String exceptionType;
 
     @NotNull(message = "exceptionLevel参数缺失")
     @ApiModelProperty(value = "危害程度(轻微1、中等2、重度3)")

+ 8 - 1
taphole-warn/src/main/java/com/sckj/warn/validate/TExceptionLogSearchValidate.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 @Data
@@ -13,7 +14,7 @@ public class TExceptionLogSearchValidate implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
-    private Integer exceptionType;
+    private String exceptionType;
 
     @ApiModelProperty(value = "异常区域(铁口区域,目前只有1号铁口区域)")
     private String exceptionArea;
@@ -21,4 +22,10 @@ public class TExceptionLogSearchValidate implements Serializable {
     @ApiModelProperty(value = "危害程度(轻微、中等、重度)")
     private String exceptionLevel;
 
+    @ApiModelProperty(value = "锅炉编号")
+    private String boilerId;
+
+    @ApiModelProperty(value = "铁口区域编号")
+    private String tapholeId;
+
 }

+ 55 - 0
taphole-warn/src/main/java/com/sckj/warn/vo/TExceptionLogExportVo.java

@@ -0,0 +1,55 @@
+package com.sckj.warn.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.HeadFontStyle;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadStyle;
+import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@HeadStyle(fillPatternType = FillPatternTypeEnum.NO_FILL,fillForegroundColor = -1)
+@HeadFontStyle(fontHeightInPoints = 16)
+@HeadRowHeight(40)
+@Data
+@ApiModel("异常情况记录列表Vo")
+public class TExceptionLogExportVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ExcelProperty("时间")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    @ExcelProperty("异常类型")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "异常类型")
+    private String exceptionTypeName;
+
+    @ExcelProperty("危害程度")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "危害程度")
+    private String exceptionLevelName;
+
+    @ExcelProperty("锅炉编号")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "锅炉编号")
+    private String boilerName;
+
+    @ExcelProperty("铁口区域编号")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "铁口区域编号")
+    private String tapholeName;
+
+    @ExcelProperty("异常描述")
+    @ColumnWidth(25)
+    @ApiModelProperty(value = "异常描述")
+    private String exceptionDesc;
+
+
+}

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

@@ -19,7 +19,7 @@ public class TExceptionLogListedVo implements Serializable {
     private Long id;
 
     @ApiModelProperty(value = "异常类型(开口耗时、出铁时间、出铁量、流速、铁水温度变化)")
-    private Integer exceptionType;
+    private String exceptionType;
 
     @ApiModelProperty(value = "异常区域(铁口区域,目前只有1号铁口区域)")
     private String exceptionArea;

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

@@ -8,6 +8,56 @@
         limit 7
     </select>
 
+    <select id="exportExceptionLogList" resultType="com.sckj.warn.vo.TExceptionLogExportVo" >
+        SELECT
+            el.create_time,
+            el.exception_desc,
+            a2.name AS exception_type_name,
+            a3.name AS exception_level_name,
+            a4.name AS taphole_name,
+            a5.name AS boiler_name,
+            el.exception_type,
+            el.exception_level,
+            el.taphole_id,
+            el.boiler_id
+        FROM t_exception_log el
+                 LEFT JOIN (
+            SELECT b.dict_type, a.name, a.value
+            FROM la_dict_data a
+                     INNER JOIN la_dict_type b ON a.type_id = b.id
+        ) a2 ON a2.value = el.exception_type AND a2.dict_type = 'exception_type'
+                 LEFT JOIN (
+            SELECT b.dict_type, a.name, a.value
+            FROM la_dict_data a
+                     INNER JOIN la_dict_type b ON a.type_id = b.id
+        ) a3 ON a3.value = el.exception_level AND a3.dict_type = 'exception_level'
+                 LEFT JOIN (
+            SELECT b.dict_type, a.name, a.value
+            FROM la_dict_data a
+                     INNER JOIN la_dict_type b ON a.type_id = b.id
+        ) a4 ON a4.value = el.taphole_id AND a4.dict_type = 'taphole_num'
+                 LEFT JOIN (
+            SELECT b.dict_type, a.name, a.value
+            FROM la_dict_data a
+                     INNER JOIN la_dict_type b ON a.type_id = b.id
+        ) a5 ON a5.value = el.boiler_id AND a5.dict_type = 'boiler_num'
+        <where>
+            <if test="boilerId != null and boiler_id !=''">
+               and boiler_id = #{boiler_id}
+            </if>
+            <if test="tapholeId != null and tapholeId !=''">
+                and taphole_Id = #{tapholeId}
+            </if>
+            <if test="exceptionType != null and exceptionType !=''">
+                and exception_Type = #{exceptionType}
+            </if>
+            <if test="exceptionLevel != null and exceptionLevel !=''">
+                and exception_Level = #{exceptionLevel}
+            </if>
+        </where>
+    </select>
+
+
 
 
 </mapper>