Browse Source

Merge remote-tracking branch 'origin/master'

wangyangyang 4 years ago
parent
commit
15ea55b61a
22 changed files with 920 additions and 43 deletions
  1. 45 0
      sms_water/src/main/java/com/huaxu/async/async.java
  2. 45 0
      sms_water/src/main/java/com/huaxu/common/converter/DeviceTypeConverter.java
  3. 1 1
      sms_water/src/main/java/com/huaxu/config/FeignConfig.java
  4. 164 1
      sms_water/src/main/java/com/huaxu/controller/AlarmDetailsController.java
  5. 17 15
      sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java
  6. 1 1
      sms_water/src/main/java/com/huaxu/controller/DeviceController.java
  7. 1 1
      sms_water/src/main/java/com/huaxu/controller/DeviceParmController.java
  8. 5 2
      sms_water/src/main/java/com/huaxu/controller/SystemSettingController.java
  9. 44 10
      sms_water/src/main/java/com/huaxu/dao/AlarmDetailMapper.java
  10. 9 0
      sms_water/src/main/java/com/huaxu/dao/AlarmSettingMapper.java
  11. 84 0
      sms_water/src/main/java/com/huaxu/dao/OrgMapper.java
  12. 1 1
      sms_water/src/main/java/com/huaxu/dto/AlarmDetailsDto.java
  13. 77 0
      sms_water/src/main/java/com/huaxu/dto/AlarmDetailsHistoryDto.java
  14. 70 0
      sms_water/src/main/java/com/huaxu/dto/AlarmDetailsRealTimeDto.java
  15. 1 1
      sms_water/src/main/java/com/huaxu/entity/AlarmDetailsEntity.java
  16. 99 0
      sms_water/src/main/java/com/huaxu/entity/Org.java
  17. 30 2
      sms_water/src/main/java/com/huaxu/service/AlarmDetailsService.java
  18. 10 2
      sms_water/src/main/java/com/huaxu/service/AlarmSettingService.java
  19. 26 3
      sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java
  20. 36 0
      sms_water/src/main/java/com/huaxu/util/OrgInfoUtil.java
  21. 146 3
      sms_water/src/main/resources/mapper/AlarmDetailMapper.xml
  22. 8 0
      sms_water/src/main/resources/mapper/AlarmSettingMapper.xml

+ 45 - 0
sms_water/src/main/java/com/huaxu/async/async.java

@@ -0,0 +1,45 @@
+package com.huaxu.async;
+
+import com.alibaba.fastjson.JSONArray;
+import com.huaxu.dao.AlarmDetailMapper;
+import com.huaxu.dto.AlarmDetailsDto;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @description 在初始化完成后启动一个线程
+ * @auto wangli
+ * @data 2020-11-17 20:42
+ */
+@Service
+@Slf4j
+public class async implements InitializingBean {
+
+    @Resource
+    private AlarmDetailMapper alarmDetailMapper;
+
+
+    @Override
+    public void afterPropertiesSet() {
+        new Thread(() -> {
+            while (true) {
+                log.info("didi");
+                try {
+                   log.info( JSONArray.toJSON(alarmDetailMapper.selectList(new AlarmDetailsDto())).toString());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    log.error(e.getMessage());
+                }
+                try {
+                    Thread.sleep(100000);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                    log.error(e.getMessage());
+                }
+            }
+        }).start();
+    }
+}

+ 45 - 0
sms_water/src/main/java/com/huaxu/common/converter/DeviceTypeConverter.java

@@ -0,0 +1,45 @@
+package com.huaxu.common.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+/**
+ * @description 设备类型转换
+ * @auto wangli
+ * @data 2020-11-17 21:57
+ */
+public class DeviceTypeConverter implements Converter<Integer> {
+    // 在java中的类型是什么
+    @Override
+    public Class supportJavaTypeKey() {
+        return Integer.class;
+    }
+    // 在excel中的类型是什么
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+    // 将excel的数据类型转为java数据类型
+    @Override
+    public Integer convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        String stringValue = cellData.getStringValue();
+        if (stringValue == null) {
+            throw new RuntimeException("性别填写为空");
+        }
+        if ("男".equals(stringValue)) {
+            return 1;
+        }
+        return 0;
+    }
+    // 将java的数据类型转为excel数据类型
+    @Override
+    public CellData convertToExcelData(Integer s, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        if	(s == 0){
+            return new CellData("女");
+        }
+        return new CellData("男");
+    }
+}

+ 1 - 1
sms_water/src/main/java/com/huaxu/config/FeignConfig.java

@@ -10,7 +10,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.http.HttpServletRequest;
 
 /**
- * @description
+ * @description  调用其他模块接口时,带上权限认证
  * @auto wangli
  * @data 2020-11-17 8:52
  */

+ 164 - 1
sms_water/src/main/java/com/huaxu/controller/AlarmDetailsController.java

@@ -3,7 +3,10 @@ package com.huaxu.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaxu.common.EasyExcelUtil;
 import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.dto.AlarmDetailsHistoryDto;
+import com.huaxu.dto.AlarmDetailsRealTimeDto;
 import com.huaxu.entity.AlarmDetailsEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
@@ -15,6 +18,7 @@ import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import java.text.ParseException;
@@ -35,6 +39,9 @@ public class AlarmDetailsController {
     @Autowired
     private AlarmDetailsService alarmDetailsService;
 
+    @Value("${SMS.sys_excel_path}")
+    private String baseDir;
+
     @RequestMapping(value="get" , method = RequestMethod.GET)
     @ApiOperation(value = "查询单个报警详情信息")
     public AjaxMessage<AlarmDetailsEntity> get( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
@@ -45,10 +52,11 @@ public class AlarmDetailsController {
     @ApiOperation(value = "分页查询报警详情信息")
     public AjaxMessage<Pagination<AlarmDetailsDto>> selectPage(
             @ApiParam(value = "查询:场景名称/设备名称") @RequestParam(required = false) String condition,
-            @ApiParam(value = "报警类型") @RequestParam(required = false) Integer alarmType,
+            @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
             @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
             @ApiParam(value = "查询:开始时间") @RequestParam(required = false) String startTime,
             @ApiParam(value = "查询:结束时间") @RequestParam(required = false) String endTime,
+            @ApiParam(value = "数据类型:1 实时报警 0 历史报警" ,required = false) @RequestParam(required = false) Integer state,
             @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
             @ApiParam(value = "条数,非必传,默认10条",  defaultValue = "10") @RequestParam(required = false, defaultValue = "10") Integer pageSize
     ){
@@ -56,6 +64,7 @@ public class AlarmDetailsController {
         alarmDetailsDto.setCondition(condition);
         alarmDetailsDto.setAlarmType(alarmType);
         alarmDetailsDto.setOpState(opState);
+        alarmDetailsDto.setState(state);
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
 
         try {
@@ -112,4 +121,158 @@ public class AlarmDetailsController {
     public AjaxMessage<Integer> renewById( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
         return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.suspendedById(id,1));
     }
+
+
+
+    @RequestMapping(value="selectHistoryPage" , method = RequestMethod.GET)
+    @ApiOperation(value = "分页查询报历史警详情信息")
+    public AjaxMessage<Pagination<AlarmDetailsHistoryDto>> selectHistoryPage(
+            @ApiParam(value = "查询:场景名称/设备名称") @RequestParam(required = false) String condition,
+            @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
+            @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
+            @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
+            @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime,
+            @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+            @ApiParam(value = "条数,非必传,默认10条",  defaultValue = "10") @RequestParam(required = false, defaultValue = "10") Integer pageSize
+    ){
+        AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
+        alarmDetailsDto.setCondition(condition);
+        alarmDetailsDto.setAlarmType(alarmType);
+        alarmDetailsDto.setOpState(opState);
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            if(StringUtils.isNotBlank(startTime)){
+                alarmDetailsDto.setStartTime(f.parse(startTime));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                alarmDetailsDto.setEndTime(f.parse(endTime));
+            }
+        }catch (ParseException e){
+            log.error("报警信息查询时间转换错误,原数据:beginTime:{},endTime:{},异常信息:{}",startTime,endTime,e.getMessage());
+            alarmDetailsDto.setStartTime(new Date());
+            alarmDetailsDto.setEndTime(new Date());
+        }
+
+        IPage<AlarmDetailsHistoryDto> iPage = new Page<>(pageNum, pageSize);
+        if(iPage.orders().size() == 0){
+            OrderItem orderItem =new OrderItem();
+            orderItem.setAsc(false);
+            orderItem.setColumn("t.date_create");
+            iPage.orders().add(orderItem);
+        }
+        iPage = alarmDetailsService.selectHistoryPage(iPage,alarmDetailsDto);
+        Pagination<AlarmDetailsHistoryDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
+
+    @RequestMapping(value="exportHistory" , method = RequestMethod.GET)
+    @ApiOperation(value = "导出历史报警信息")
+    public AjaxMessage<String> exportHistory(
+            @ApiParam(value = "查询:场景名称/设备名称") @RequestParam(required = false) String condition,
+            @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
+            @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
+            @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
+            @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime
+
+    ){
+        AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
+        alarmDetailsDto.setCondition(condition);
+        alarmDetailsDto.setAlarmType(alarmType);
+        alarmDetailsDto.setOpState(opState);
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            if(StringUtils.isNotBlank(startTime)){
+                alarmDetailsDto.setStartTime(f.parse(startTime));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                alarmDetailsDto.setEndTime(f.parse(endTime));
+            }
+        }catch (ParseException e){
+            log.error("报警信息查询时间转换错误,原数据:beginTime:{},endTime:{},异常信息:{}",startTime,endTime,e.getMessage());
+            alarmDetailsDto.setStartTime(new Date());
+            alarmDetailsDto.setEndTime(new Date());
+        }
+
+        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsHistoryDto.class, "历史报警",alarmDetailsService.selectHistoryList(alarmDetailsDto) );
+        return new AjaxMessage<>(ResultStatus.OK, filePath);
+    }
+
+
+
+
+    @RequestMapping(value="selectRealTimePage" , method = RequestMethod.GET)
+    @ApiOperation(value = "分页查询实时报警详情信息")
+    public AjaxMessage<Pagination<AlarmDetailsRealTimeDto>> selectRealTimePage(
+            @ApiParam(value = "查询:场景名称/设备名称") @RequestParam(required = false) String condition,
+            @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
+            @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
+            @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
+            @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime,
+            @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+            @ApiParam(value = "条数,非必传,默认10条",  defaultValue = "10") @RequestParam(required = false, defaultValue = "10") Integer pageSize
+    ){
+        AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
+        alarmDetailsDto.setCondition(condition);
+        alarmDetailsDto.setAlarmType(alarmType);
+        alarmDetailsDto.setOpState(opState);
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+
+        try {
+            if(StringUtils.isNotBlank(startTime)){
+                alarmDetailsDto.setStartTime(f.parse(startTime));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                alarmDetailsDto.setEndTime(f.parse(endTime));
+            }
+        }catch (ParseException e){
+            log.error("报警信息查询时间转换错误,原数据:beginTime:{},endTime:{},异常信息:{}",startTime,endTime,e.getMessage());
+            alarmDetailsDto.setStartTime(new Date());
+            alarmDetailsDto.setEndTime(new Date());
+        }
+
+        IPage<AlarmDetailsRealTimeDto> iPage = new Page<>(pageNum, pageSize);
+        if(iPage.orders().size() == 0){
+            OrderItem orderItem =new OrderItem();
+            orderItem.setAsc(false);
+            orderItem.setColumn("t.date_create");
+            iPage.orders().add(orderItem);
+        }
+        iPage = alarmDetailsService.selectRealTimePage(iPage,alarmDetailsDto);
+        Pagination<AlarmDetailsRealTimeDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
+
+    @RequestMapping(value="exportRealTime" , method = RequestMethod.GET)
+    @ApiOperation(value = "导出实时报警信息")
+    public AjaxMessage<String> exportRealTime(
+            @ApiParam(value = "查询:场景名称/设备名称") @RequestParam(required = false) String condition,
+            @ApiParam(value = "报警类型") @RequestParam(required = false) String alarmType,
+            @ApiParam(value = "处理状态") @RequestParam(required = false) Integer opState,
+            @ApiParam(value = "查询:开始时间yyyy-MM-dd") @RequestParam(required = false) String startTime,
+            @ApiParam(value = "查询:结束时间yyyy-MM-dd") @RequestParam(required = false) String endTime
+    ){
+        AlarmDetailsDto alarmDetailsDto = new AlarmDetailsDto();
+        alarmDetailsDto.setCondition(condition);
+        alarmDetailsDto.setAlarmType(alarmType);
+        alarmDetailsDto.setOpState(opState);
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            if(StringUtils.isNotBlank(startTime)){
+                alarmDetailsDto.setStartTime(f.parse(startTime));
+            }
+            if(StringUtils.isNotBlank(endTime)){
+                alarmDetailsDto.setEndTime(f.parse(endTime));
+            }
+        }catch (ParseException e){
+            log.error("报警信息查询时间转换错误,原数据:beginTime:{},endTime:{},异常信息:{}",startTime,endTime,e.getMessage());
+            alarmDetailsDto.setStartTime(new Date());
+            alarmDetailsDto.setEndTime(new Date());
+        }
+
+        String filePath = EasyExcelUtil.excelWrite(baseDir, AlarmDetailsRealTimeDto.class, "实时报警",alarmDetailsService.selectRealTimeList(alarmDetailsDto) );
+        return new AjaxMessage<>(ResultStatus.OK, filePath);
+    }
+
+
+
 }

+ 17 - 15
sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java

@@ -83,21 +83,6 @@ public class AlarmSettingController {
         boolean result = alarmSettingService.insertBatch(listAlarmSetting);
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
-    /**
-     * 根据id查询报警设置数据
-     *
-     * @param id
-     * @return
-     */
-    @RequestMapping(value = "selectById", method = RequestMethod.GET)
-    @ApiOperation(value = "根据id查询报警配置数据")
-    public AjaxMessage<AlarmSetting> selectById(@RequestParam Integer id) {
-        if(id==null) {
-            return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
-        }
-        AlarmSetting result = alarmSettingService.selectById(id);
-        return new AjaxMessage<>(ResultStatus.OK, result);
-    }
 
     /**
      * 分页查询报警设置数据
@@ -111,9 +96,11 @@ public class AlarmSettingController {
     public AjaxMessage<Pagination<AlarmSettingDto>> selectPage(
             @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
             @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
+            @ApiParam(value = "id", required = false) @RequestParam(required = false) Integer id,
             @ApiParam(value = "报警参数", required = false) @RequestParam(required = false) String attributeName,
             @ApiParam(value = "场景id", required = false) @RequestParam(required = false) Integer sceneId) {
         AlarmSettingDto alarmSettingDto=new AlarmSettingDto();
+        alarmSettingDto.setId(id);
         alarmSettingDto.setAttributeName(attributeName);
         alarmSettingDto.setSceneId(sceneId);
         IPage<AlarmSettingDto> iPage = new Page<>(pageNum, pageSize);
@@ -121,4 +108,19 @@ public class AlarmSettingController {
         Pagination<AlarmSettingDto> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
+    /**
+     * 根据设备id查询属性信息
+     *
+     * @param deviceId
+     * @return
+     */
+    @RequestMapping(value = "selectAttributes", method = RequestMethod.GET)
+    @ApiOperation(value = "根据设备id查询属性信息")
+    public AjaxMessage<List<AlarmSettingDto>> selectAttributes(@RequestParam Integer deviceId) {
+        if(deviceId==null) {
+            return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
+        }
+        List<AlarmSettingDto> result = alarmSettingService.selectAttributes(deviceId);
+        return new AjaxMessage<>(ResultStatus.OK, result);
+    }
 }

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/DeviceController.java

@@ -22,7 +22,7 @@ import org.springframework.web.bind.annotation.*;
  * @data 2020-11-16 11:05
  */
 @RestController
-@RequestMapping("/devcie")
+@RequestMapping("/device")
 @Api(tags = "设备信息管理")
 public class DeviceController {
 

+ 1 - 1
sms_water/src/main/java/com/huaxu/controller/DeviceParmController.java

@@ -22,7 +22,7 @@ import java.util.List;
  * @data 2020-11-17 11:17
  */
 @RestController
-@RequestMapping("/devcieParm")
+@RequestMapping("/deviceParm")
 @Api(tags = "设备参数管理")
 public class DeviceParmController {
 

+ 5 - 2
sms_water/src/main/java/com/huaxu/controller/SystemSettingController.java

@@ -84,13 +84,16 @@ public class SystemSettingController {
      * @return
      */
     @RequestMapping(value = "selectGis", method = RequestMethod.GET)
-    @ApiOperation(value = "根据机构查询Gis配置数据")
+    @ApiOperation(value = "查询Gis配置数据")
     public AjaxMessage<List<GisSetting>> selectGis(
             @ApiParam(value = "所属公司", required = false) @RequestParam(required = false) Integer companyOrgId,
             @ApiParam(value = "所属部门", required = false) @RequestParam(required = false) Integer deptOrgId,
             @ApiParam(value = "服务类型", required = false) @RequestParam(required = false) String serviceType) {
+        LoginUser currentUser = UserUtil.getCurrentUser();
+        //如果机构id不传,默认查询当前角色下所属机构
         if(companyOrgId==null&&deptOrgId==null) {
-            return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
+            companyOrgId=currentUser.getCompanyId();
+            deptOrgId=currentUser.getDepartmentId();
         }
 
         List<GisSetting> result = gisSettingService.selectGis(companyOrgId,deptOrgId,serviceType);

+ 44 - 10
sms_water/src/main/java/com/huaxu/dao/AlarmDetailMapper.java

@@ -2,6 +2,8 @@ package com.huaxu.dao;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.dto.AlarmDetailsHistoryDto;
+import com.huaxu.dto.AlarmDetailsRealTimeDto;
 import com.huaxu.entity.AlarmDetailsEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -17,50 +19,82 @@ import java.util.List;
 @Mapper
 public interface AlarmDetailMapper {
     /**
-     * 查询单个设备
+     * 查询单个设备报警
      * @return
      */
     AlarmDetailsDto selectById(Integer id);
 
     /**
-     * 添加设备
+     * 添加设备报警
      * @return
      */
     Integer insert(AlarmDetailsEntity alarmDetailsEntity);
 
     /**
-     * 批量插入设备信息
+     * 批量插入设备报警信息
      * @param alarmDetails
      * @return
      */
     Integer batchInsert(List<AlarmDetailsEntity> alarmDetails);
 
     /**
-     * 单条删除设备
+     * 单条删除设备报警
      * @return
      */
     Integer deleteById(Integer id);
     /**
-     * 单条删除设备
+     * 单条删除设备报警
      * @return
      */
-    Integer suspendedById(@Param("id") Integer id, @Param("state") Integer state,@Param("dateUpdate")  Date dateUpdate ,@Param("updateBy") String updateBy);
+    Integer suspendedById(@Param("id") Integer id, @Param("opState") Integer opState,@Param("dateUpdate")  Date dateUpdate ,@Param("updateBy") String updateBy);
 
     /**
-     * 修改设备信息
+     * 修改设备报警信息
      * @return
      */
     Integer update(AlarmDetailsEntity alarmDetailsEntity);
 
     /**
-     * 查询设备信息
+     * 查询设备报警信息
      * @return
      */
-    List<AlarmDetailsDto> selectList(AlarmDetailsDto alarmDetailsDto);
+    List<AlarmDetailsDto> selectList(@Param("alarmDetailsDto") AlarmDetailsDto alarmDetailsDto);
 
     /**
      * 分页查询
      * @return
      */
-    IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto);
+    IPage<AlarmDetailsDto> selectPage(@Param("page") IPage<AlarmDetailsDto> page, @Param("alarmDetailsDto") AlarmDetailsDto alarmDetailsDto);
+
+
+    /**
+     * 查询实时设备报警信息
+     * @return
+     */
+    List<AlarmDetailsRealTimeDto> selectRealTimeList(@Param("alarmDetailsDto") AlarmDetailsDto alarmDetailsDto);
+
+    /**
+     * 查询历史设备报警信息
+     * @return
+     */
+    List<AlarmDetailsHistoryDto> selectHistoryList(@Param("alarmDetailsDto") AlarmDetailsDto alarmDetailsDto);
+
+
+
+    /**
+     * 分页查询实时数据
+     * @return
+     */
+    IPage<AlarmDetailsRealTimeDto> selectRealTimePage(@Param("page")IPage<AlarmDetailsRealTimeDto> page, @Param("alarmDetailsDto")AlarmDetailsDto alarmDetailsDto);
+
+
+    /**
+     * 分页查询历史数据
+     * @return
+     */
+    IPage<AlarmDetailsHistoryDto> selectHistoryPage(@Param("page")IPage<AlarmDetailsHistoryDto> page, @Param("alarmDetailsDto")AlarmDetailsDto alarmDetailsDto);
+
+
+
+
 }

+ 9 - 0
sms_water/src/main/java/com/huaxu/dao/AlarmSettingMapper.java

@@ -8,6 +8,8 @@ import com.huaxu.entity.AlarmSetting;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 /**
  *
@@ -24,4 +26,11 @@ public interface AlarmSettingMapper extends BaseMapper<AlarmSetting> {
      * @param  alarmSettingDto 实体类
      */
     Page<AlarmSettingDto> findPage(IPage<AlarmSettingDto> page, @Param("alarm") AlarmSettingDto alarmSettingDto);
+    /**
+     * 根据设备id查询属性信息
+     *
+     * @param deviceId
+     * @return
+     */
+    List<AlarmSettingDto> selectAttributes(@Param("deviceId")Integer deviceId);
 }

+ 84 - 0
sms_water/src/main/java/com/huaxu/dao/OrgMapper.java

@@ -0,0 +1,84 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.entity.Org;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 组织(Org)表数据库访问层
+ *
+ * @author makejava
+ * @since 2020-11-19 09:55:20
+ */
+@Mapper
+public interface OrgMapper {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    Org selectById(Integer id);
+
+
+    /**
+     * 查询全部
+     *
+     * @return 对象列表
+     */
+    List<Org> selectAll();
+
+    /**
+     * 通过实体作为筛选条件查询
+     *
+     * @param org 实例对象
+     * @return 对象列表
+     */
+    List<Org> selectList(Org org);
+
+    /**
+     * 新增数据
+     *
+     * @param org 实例对象
+     * @return 影响行数
+     */
+    int insert(Org org);
+
+    /**
+     * 批量新增
+     *
+     * @param orgs 实例对象的集合
+     * @return 影响行数
+     */
+    int batchInsert(@Param("orgs") List<Org> orgs);
+
+    /**
+     * 修改数据
+     *
+     * @param org 实例对象
+     * @return 影响行数
+     */
+    int update(Org org);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Integer id);
+
+    /**
+     * 查询总数据数
+     *
+     * @return 数据总数
+     */
+    int count();
+
+    IPage<Org> selectPage(IPage<Org> page, Org org);
+
+}

+ 1 - 1
sms_water/src/main/java/com/huaxu/dto/AlarmDetailsDto.java

@@ -24,7 +24,7 @@ public class AlarmDetailsDto extends AlarmDetailsEntity {
     @ApiModelProperty("设备名称")
     private String deviceName;
     @ApiModelProperty("设备类型")
-    private Integer devcieType;
+    private Integer deviceType;
     @ApiModelProperty("地址")
     private String address;
     @ApiModelProperty("经度")

+ 77 - 0
sms_water/src/main/java/com/huaxu/dto/AlarmDetailsHistoryDto.java

@@ -0,0 +1,77 @@
+package com.huaxu.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 21:18
+ */
+@Data
+@Api("历史报警")
+public class AlarmDetailsHistoryDto implements Serializable {
+
+    private static final long serialVersionUID = 6107433946964301057L;
+
+    @ApiModelProperty("所属场景")
+    @ExcelProperty(value = "所属场景",index = 0)
+    private String sceneName;
+    @ApiModelProperty("设备名称")
+    @ExcelProperty(value = "设备名称",index = 1)
+    private String deviceName;
+    @ApiModelProperty("设备类型")
+    @ExcelProperty(value = "设备类型",index = 2)
+    private String deviceType;
+    @ApiModelProperty("报警类型列表值")
+    @ExcelProperty(value = "报警类型",index = 3)
+    private String alarmType;
+    @ApiModelProperty(value ="报警参数")
+    @ExcelProperty(value = "报警参数",index = 4)
+    private String attributeName;
+    @ApiModelProperty(value ="报警规则")
+    @ExcelProperty(value = "报警规则",index =5)
+    private String alermRule;
+    @ApiModelProperty(value = "最大告警数值")
+    @ExcelProperty(value = "最高值",index =6)
+    private BigDecimal maxValue;
+    @ApiModelProperty(value = "最小告警数值")
+    @ExcelProperty(value = "最低值",index =7)
+    private BigDecimal minValue;
+    @ApiModelProperty("地址")
+    @ExcelProperty(value = "地址",index =8)
+    private String address;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "报警开始时间",example = "2020-12-12 12:12:12")
+    @ExcelProperty(value = "开始时间",index =9)
+    private Date alarmStartTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "报警结束时间",example = "2020-12-12 12:12:12")
+    @ExcelProperty(value = "结束时间",index =10)
+    private Date alarmEndTime;
+    @ApiModelProperty("持续时间,单位分钟")
+    @ExcelProperty(value = "持续时间(分钟)",index =11)
+    private Integer duration;
+
+    @ExcelIgnore
+    @ApiModelProperty("经度")
+    private BigDecimal pointX;
+    @ExcelIgnore
+    @ApiModelProperty("维度")
+    private BigDecimal pointY;
+    @ExcelIgnore
+    @ApiModelProperty(value = "报警状态")
+    private Integer state;
+    @ExcelIgnore
+    @ApiModelProperty(value = "处理状态")
+    private Integer opState;
+
+}

+ 70 - 0
sms_water/src/main/java/com/huaxu/dto/AlarmDetailsRealTimeDto.java

@@ -0,0 +1,70 @@
+package com.huaxu.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 21:17
+ */
+@Data
+@Api("实时报警")
+public class AlarmDetailsRealTimeDto implements Serializable {
+
+    private static final long serialVersionUID = -875384438390073815L;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    @ApiModelProperty("所属场景")
+    @ExcelProperty(value = "所属场景",index = 0)
+    private String sceneName;
+    @ApiModelProperty("设备名称")
+    @ExcelProperty(value = "设备名称",index = 1)
+    private String deviceName;
+    @ApiModelProperty("设备类型")
+    @ExcelProperty(value = "设备类型",index = 2)
+    private String deviceType;
+    @ApiModelProperty("报警类型列表值")
+    @ExcelProperty(value = "报警类型",index = 3)
+    private String alarmType;
+    @ApiModelProperty(value ="报警参数")
+    @ExcelProperty(value = "报警参数",index = 4)
+    private String attributeName;
+    @ApiModelProperty(value = "当前数值")
+    @ExcelProperty(value = "当前数值",index = 5)
+    private BigDecimal alarmValue;
+    @ApiModelProperty(value = "报警详情")
+    @ExcelProperty(value = "报警详情",index = 6)
+    private String alarmContent;
+    @ApiModelProperty("地址")
+    @ExcelProperty(value = "地址",index =7)
+    private String address;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "报警开始时间",example = "2020-12-12 12:12:12")
+    @ExcelProperty(value = "开始时间",index =8)
+    private Date alarmStartTime;
+
+    @ExcelIgnore
+    @ApiModelProperty("经度")
+    private BigDecimal pointX;
+    @ExcelIgnore
+    @ApiModelProperty("维度")
+    private BigDecimal pointY;
+    @ExcelIgnore
+    @ApiModelProperty(value = "报警状态")
+    private Integer state;
+    @ExcelIgnore
+    @ApiModelProperty(value = "处理状态")
+    private Integer opState;
+
+}

+ 1 - 1
sms_water/src/main/java/com/huaxu/entity/AlarmDetailsEntity.java

@@ -34,7 +34,7 @@ public class AlarmDetailsEntity implements Serializable {
     private Integer deptOrgId;
 
     @ApiModelProperty(value = "报警类型")
-    private Integer alarmType;
+    private String alarmType;
     @ApiModelProperty(value = "报警参数ID")
     private Integer attributeId;
     @ApiModelProperty(value = "当前数值")

+ 99 - 0
sms_water/src/main/java/com/huaxu/entity/Org.java

@@ -0,0 +1,99 @@
+package com.huaxu.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 组织(Org)实体类
+ *
+ * @author makejava
+ * @since 2020-11-19 09:55:20
+ */
+@Data
+@ApiModel
+public class Org implements Serializable {
+    private static final long serialVersionUID = 813791045057448389L;
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+    /**
+     * 租户标识
+     */
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+    /**
+     * 机构类型
+     */
+    @ApiModelProperty(value = "机构类型")
+    private String orgType;
+    /**
+     * 上级机构
+     */
+    @ApiModelProperty(value = "上级机构")
+    private Integer parentOrgId;
+    /**
+     * 机构所在区域
+     */
+    @ApiModelProperty(value = "机构所在区域")
+    private Integer orgAreaId;
+    /**
+     * 机构名称
+     */
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+    /**
+     * 机构状态
+     */
+    @ApiModelProperty(value = "机构状态")
+    private Integer orgState;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 机构负责人名称
+     */
+    @ApiModelProperty(value = "机构负责人名称")
+    private String orgLeaderName;
+    /**
+     * 机构负责人手机
+     */
+    @ApiModelProperty(value = "机构负责人手机")
+    private String orgLeaderPhone;
+    /**
+     * 机构负责人邮箱
+     */
+    @ApiModelProperty(value = "机构负责人邮箱")
+    private String orgLeaderEmail;
+    /**
+     * 机构负责人性别
+     */
+    @ApiModelProperty(value = "机构负责人性别")
+    private String orgLeaderSex;
+    /**
+     * 数据删除标记
+     */
+    @ApiModelProperty(value = "数据删除标记")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date dateCreate;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    @ApiModelProperty(value = "")
+    private Date dateUpdate;
+    @ApiModelProperty(value = "")
+    private String updateBy;
+}

+ 30 - 2
sms_water/src/main/java/com/huaxu/service/AlarmDetailsService.java

@@ -2,6 +2,8 @@ package com.huaxu.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.dto.AlarmDetailsHistoryDto;
+import com.huaxu.dto.AlarmDetailsRealTimeDto;
 import com.huaxu.entity.AlarmDetailsEntity;
 
 import java.util.List;
@@ -38,10 +40,10 @@ public interface AlarmDetailsService {
      */
     Integer deleteById(Integer id);
     /**
-     * 单条删除设备
+     * 挂起/恢复
      * @return
      */
-    Integer suspendedById(Integer id , Integer state);
+    Integer suspendedById(Integer id , Integer opState);
 
     /**
      * 修改设备信息
@@ -60,4 +62,30 @@ public interface AlarmDetailsService {
      * @return
      */
     IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto);
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<AlarmDetailsHistoryDto> selectHistoryList(AlarmDetailsDto alarmDetailsDto);
+
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<AlarmDetailsRealTimeDto> selectRealTimeList(AlarmDetailsDto alarmDetailsDto);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<AlarmDetailsRealTimeDto> selectRealTimePage(IPage<AlarmDetailsRealTimeDto> page, AlarmDetailsDto alarmDetailsDto);
+
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<AlarmDetailsHistoryDto> selectHistoryPage(IPage<AlarmDetailsHistoryDto> page, AlarmDetailsDto alarmDetailsDto);
+
+
 }

+ 10 - 2
sms_water/src/main/java/com/huaxu/service/AlarmSettingService.java

@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaxu.dao.AlarmSettingMapper;
 import com.huaxu.dto.AlarmSettingDto;
 import com.huaxu.entity.AlarmSetting;
-import com.huaxu.entity.GisSetting;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -69,4 +68,13 @@ public class AlarmSettingService extends ServiceImpl<AlarmSettingMapper, AlarmSe
      public IPage<AlarmSettingDto> selectPage(IPage<AlarmSettingDto> page, AlarmSettingDto alarmSettingDto){
         return alarmSettingMapper.findPage(page,alarmSettingDto);
     }
-}
+    /**
+     * 根据设备id查询属性信息
+     *
+     * @param deviceId
+     * @return
+     */
+    public List<AlarmSettingDto> selectAttributes(Integer deviceId){
+        return alarmSettingMapper.selectAttributes(deviceId);
+    }
+}

+ 26 - 3
sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java

@@ -3,6 +3,8 @@ package com.huaxu.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.AlarmDetailMapper;
 import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.dto.AlarmDetailsHistoryDto;
+import com.huaxu.dto.AlarmDetailsRealTimeDto;
 import com.huaxu.entity.AlarmDetailsEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.service.AlarmDetailsService;
@@ -10,6 +12,7 @@ import com.huaxu.util.UserUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
 
@@ -21,7 +24,7 @@ import java.util.List;
 @Service
 public class AlarmDetailsServiceImpl implements AlarmDetailsService {
 
-    @Autowired
+    @Resource
     private AlarmDetailMapper alarmDetailMapper;
 
     @Override
@@ -45,9 +48,9 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
     }
 
     @Override
-    public Integer suspendedById(Integer id , Integer state) {
+    public Integer suspendedById(Integer id , Integer opState) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        return alarmDetailMapper.suspendedById(id,state,new Date(),loginUser.getUsername());
+        return alarmDetailMapper.suspendedById(id,opState,new Date(),loginUser.getUsername());
     }
 
     @Override
@@ -64,4 +67,24 @@ public class AlarmDetailsServiceImpl implements AlarmDetailsService {
     public IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto) {
         return alarmDetailMapper.selectPage(page,alarmDetailsDto);
     }
+
+    @Override
+    public List<AlarmDetailsRealTimeDto> selectRealTimeList(AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectRealTimeList(alarmDetailsDto);
+    }
+
+    @Override
+    public IPage<AlarmDetailsRealTimeDto> selectRealTimePage(IPage<AlarmDetailsRealTimeDto> page, AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectRealTimePage(page,alarmDetailsDto);
+    }
+
+    @Override
+    public List<AlarmDetailsHistoryDto> selectHistoryList(AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectHistoryList(alarmDetailsDto);
+    }
+
+    @Override
+    public IPage<AlarmDetailsHistoryDto> selectHistoryPage(IPage<AlarmDetailsHistoryDto> page, AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectHistoryPage(page,alarmDetailsDto);
+    }
 }

+ 36 - 0
sms_water/src/main/java/com/huaxu/util/OrgInfoUtil.java

@@ -0,0 +1,36 @@
+package com.huaxu.util;
+
+import com.huaxu.dao.OrgMapper;
+import com.huaxu.entity.Org;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class OrgInfoUtil {
+    @Autowired
+    private RedisUtil redisUtil;
+    @Autowired
+    private OrgMapper orgMapper;
+    public  String getOrgName(Integer id){
+
+        String tenantId = UserUtil.getCurrentUser().getTenantId();
+        String key="orgInfo" + tenantId;
+        Map<String, String> keysValues = redisUtil.getKeysValues(key);
+        if(keysValues==null){
+            keysValues=new HashMap<>();
+            Org org=new Org();
+            org.setStatus(1);
+            org.setTenantId(tenantId);
+            List<Org> orgs = orgMapper.selectList(org);
+            for (Org org1 : orgs) {
+                keysValues.put(org1.getId()+"",org1.getOrgName());
+            }
+            redisUtil.putHashValues(key,keysValues);
+        }
+        return keysValues.get(id);
+    };
+}

+ 146 - 3
sms_water/src/main/resources/mapper/AlarmDetailMapper.xml

@@ -24,12 +24,12 @@
             ,a.UPDATE_BY as "updateBy"
             ,a.MIN_VALUE as "minValue"
             ,a.MAX_VALUE as "maxValue"
-
+            ,timestampdiff(MINUTE,ifnull(a.ALARM_END_TIME,now()),a.ALARM_START_TIME) as "duration"
             ,(case when ALARM_END_TIME is not null then timestampdiff(MINUTE,a.ALARM_END_TIME,a.ALARM_START_TIME) else null end ) as "duration"
             ,att.`NAME` as "attributeName"
             ,s.SCENE_NAME as "sceneName"
             ,d.DEVICE_NAME as "deviceName"
-            ,t.DEVICE_TYPE as "devcieType"
+            ,t.DEVICE_TYPE as "deviceType"
             ,d.ADDRESS as "address"
             ,d.POINT_X as "pointX"
             ,d.POINT_Y as "pointY"
@@ -38,6 +38,48 @@
             ,att.UNIT as "unit"
     </sql>
 
+    <sql id="Base_Column_List_real_time">
+            a.ID as "id"
+            ,a.STATE as "state"
+            ,a.OP_STATE as "opState"
+            ,s.SCENE_NAME as "sceneName"
+            ,d.DEVICE_NAME as "deviceName"
+            ,t.DEVICE_TYPE as "deviceType"
+            ,a.ALARM_TYPE as "alarmType"
+            ,att.`NAME` as "attributeName"
+            ,a.ALARM_START_TIME as "alarmStartTime"
+            ,d.ADDRESS as "address"
+            ,d.POINT_X as "pointX"
+            ,d.POINT_Y as "pointY"
+
+
+            ,a.ALARM_VALUE as "alarmValue"
+            ,a.ALARM_CONTENT as "alarmContent"
+
+    </sql>
+
+    <sql id="Base_Column_List_history">
+            a.ID as "id"
+            ,a.STATE as "state"
+            ,a.OP_STATE as "opState"
+            ,s.SCENE_NAME as "sceneName"
+            ,d.DEVICE_NAME as "deviceName"
+            ,t.DEVICE_TYPE as "deviceType"
+            ,a.ALARM_TYPE as "alarmType"
+            ,att.`NAME` as "attributeName"
+            ,a.ALARM_START_TIME as "alarmStartTime"
+            ,d.ADDRESS as "address"
+            ,d.POINT_X as "pointX"
+            ,d.POINT_Y as "pointY"
+
+            ,a.MIN_VALUE as "minValue"
+            ,a.MAX_VALUE as "maxValue"
+            ,concat(ifnull(ast.ALARM_CONDITION,''),ifnull(ast.ALARM_VALUE,'')) as "alermRule"
+            ,a.ALARM_END_TIME as "alarmEndTime"
+            ,timestampdiff(MINUTE,ifnull(a.ALARM_END_TIME,now()),a.ALARM_START_TIME) as "duration"
+
+    </sql>
+
     <sql id="alarmDetailJoins">
         left join sms_device d on a.DEVICE_ID =d.id and d.`STATUS` = 1
         left join sms_scene s on d.SCENE_ID =s.id and s.`STATUS` =1
@@ -160,7 +202,7 @@
 
     <!-- 报警挂起、恢复 -->
     <delete id="suspendedById">
-         UPDATE  sms_alarm_details set STATE  = #{state} , DATE_UPDATE  = #{dateUpdate}, UPDATE_BY  = #{updateBy} where id = #{id}
+         UPDATE  sms_alarm_details set op_state  = #{opState} , DATE_UPDATE  = #{dateUpdate}, UPDATE_BY  = #{updateBy} where id = #{id}
     </delete>
 
     <!-- 分页查询 -->
@@ -173,6 +215,59 @@
         <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
             and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
         </if>
+        <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
+            and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
+        </if>
+        <if test="alarmDetailsDto.state != null">
+            and a.STATE =#{alarmDetailsDto.state}
+        </if>
+        <if test="alarmDetailsDto.opState != null">
+            and a.OP_STATE =#{alarmDetailsDto.opState}
+        </if>
+        <if test="alarmDetailsDto.startTime != null">
+            and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
+        </if>
+        <if test="alarmDetailsDto.endTime != null">
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{operateLogDto.endTime},INTERVAL 1 DAY)
+        </if>
+
+    </select>
+
+    <!-- 实时数据分页分页查询 -->
+    <select id="selectRealTimePage" resultType="com.huaxu.dto.AlarmDetailsRealTimeDto">
+        select
+        <include refid="Base_Column_List_real_time"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 1 and a.state = 1
+        <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
+            and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
+        </if>
+        <if test="alarmDetailsDto.alarmType != null">
+            and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
+        </if>
+        <if test="alarmDetailsDto.opState != null">
+            and a.OP_STATE =#{alarmDetailsDto.opState}
+        </if>
+        <if test="alarmDetailsDto.startTime != null">
+            and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
+        </if>
+        <if test="alarmDetailsDto.endTime != null">
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{operateLogDto.endTime},INTERVAL 1 DAY)
+        </if>
+
+    </select>
+
+    <!-- 历史数据分页分页查询 -->
+    <select id="selectHistoryPage" resultType="com.huaxu.dto.AlarmDetailsHistoryDto">
+        select
+        <include refid="Base_Column_List_history"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 1 and a.state = 0
+        <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
+            and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
+        </if>
         <if test="alarmDetailsDto.alarmType != null">
             and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
         </if>
@@ -188,5 +283,53 @@
 
     </select>
 
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectRealTimeList" resultType="com.huaxu.dto.AlarmDetailsRealTimeDto">
+        select
+        <include refid="Base_Column_List_real_time"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 1 and a.state = 1
+        <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
+            and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
+        </if>
+        <if test="alarmDetailsDto.alarmType != null">
+            and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
+        </if>
+        <if test="alarmDetailsDto.opState != null">
+            and a.OP_STATE =#{alarmDetailsDto.opState}
+        </if>
+        <if test="alarmDetailsDto.startTime != null">
+            and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
+        </if>
+        <if test="alarmDetailsDto.endTime != null">
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{operateLogDto.endTime},INTERVAL 1 DAY)
+        </if>
+    </select>
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectHistoryList" resultType="com.huaxu.dto.AlarmDetailsHistoryDto">
+        select
+        <include refid="Base_Column_List_history"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 1 and a.state = 0
+        <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
+            and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
+        </if>
+        <if test="alarmDetailsDto.alarmType != null">
+            and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
+        </if>
+        <if test="alarmDetailsDto.opState != null">
+            and a.OP_STATE =#{alarmDetailsDto.opState}
+        </if>
+        <if test="alarmDetailsDto.startTime != null">
+            and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
+        </if>
+        <if test="alarmDetailsDto.endTime != null">
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{operateLogDto.endTime},INTERVAL 1 DAY)
+        </if>
+    </select>
+
 
 </mapper>

+ 8 - 0
sms_water/src/main/resources/mapper/AlarmSettingMapper.xml

@@ -56,4 +56,12 @@
         </where>
     </select>
 
+    <select id="selectAttributes" resultMap="alarmSettingMap">
+        select t3.id attribute_id,t3.name attribute_name
+        from  sms_device t1
+        inner join sms_device_type t2 on t1.device_type_id=t2.id
+        inner join sms_device_attribute t3 on t2.id=t3.device_mode_id
+        where t1.id=#{deviceId} and t3.status=1
+    </select>
+
 </mapper>