Browse Source

Merge remote-tracking branch 'origin/master'

yuejiaying 4 years ago
parent
commit
c0bb9eb7f8
28 changed files with 1862 additions and 5 deletions
  1. 4 0
      sms_water/pom.xml
  2. 2 5
      sms_water/src/main/java/com/huaxu/SmsWaterApplication.java
  3. 25 0
      sms_water/src/main/java/com/huaxu/client/UserCenterClient.java
  4. 25 0
      sms_water/src/main/java/com/huaxu/config/FeignConfig.java
  5. 115 0
      sms_water/src/main/java/com/huaxu/controller/AlarmDetailsController.java
  6. 91 0
      sms_water/src/main/java/com/huaxu/controller/DeviceController.java
  7. 82 0
      sms_water/src/main/java/com/huaxu/controller/DeviceParmController.java
  8. 65 0
      sms_water/src/main/java/com/huaxu/dao/AlarmDetailMapper.java
  9. 60 0
      sms_water/src/main/java/com/huaxu/dao/DeviceMapper.java
  10. 66 0
      sms_water/src/main/java/com/huaxu/dao/DeviceParmMapper.java
  11. 43 0
      sms_water/src/main/java/com/huaxu/dto/AlarmDetailsDto.java
  12. 36 0
      sms_water/src/main/java/com/huaxu/dto/DeviceDto.java
  13. 69 0
      sms_water/src/main/java/com/huaxu/entity/AlarmDetailsEntity.java
  14. 69 0
      sms_water/src/main/java/com/huaxu/entity/DeviceEntity.java
  15. 60 0
      sms_water/src/main/java/com/huaxu/entity/DeviceParmEntity.java
  16. 51 0
      sms_water/src/main/java/com/huaxu/entity/OperateLogEntity.java
  17. 16 0
      sms_water/src/main/java/com/huaxu/logAdvice/LogAnnotation.java
  18. 92 0
      sms_water/src/main/java/com/huaxu/logAdvice/OperateLogAdvice.java
  19. 63 0
      sms_water/src/main/java/com/huaxu/service/AlarmDetailsService.java
  20. 60 0
      sms_water/src/main/java/com/huaxu/service/DeviceParmService.java
  21. 42 0
      sms_water/src/main/java/com/huaxu/service/DeviceService.java
  22. 63 0
      sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java
  23. 79 0
      sms_water/src/main/java/com/huaxu/service/impl/DeviceParmServiceImpl.java
  24. 61 0
      sms_water/src/main/java/com/huaxu/service/impl/DeviceServiceImpl.java
  25. 14 0
      sms_water/src/main/resources/logback-spring.xml
  26. 183 0
      sms_water/src/main/resources/mapper/AlarmDetailMapper.xml
  27. 186 0
      sms_water/src/main/resources/mapper/DeviceMapper.xml
  28. 140 0
      sms_water/src/main/resources/mapper/DeviceParmMapper.xml

+ 4 - 0
sms_water/pom.xml

@@ -55,6 +55,10 @@
            <artifactId>poi-scratchpad</artifactId>
            <version>4.0.1</version>
        </dependency>
+       <dependency>
+           <groupId>org.springframework.cloud</groupId>
+           <artifactId>spring-cloud-starter-openfeign</artifactId>
+       </dependency>
    </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

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

@@ -1,18 +1,15 @@
 package com.huaxu;
 
 
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.ApplicationContext;
-
-import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
 @EnableDiscoveryClient
 @SpringBootApplication
+@EnableFeignClients
 @EnableSwagger2
 public class SmsWaterApplication {
 

+ 25 - 0
sms_water/src/main/java/com/huaxu/client/UserCenterClient.java

@@ -0,0 +1,25 @@
+package com.huaxu.client;
+
+import com.huaxu.config.FeignConfig;
+import com.huaxu.entity.OperateLogEntity;
+import com.huaxu.model.AjaxMessage;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @description 服务调用
+ * @auto wangli
+ * @data 2020-11-16 15:46
+ */
+@FeignClient(value = "user-center",configuration={FeignConfig.class})
+public interface UserCenterClient {
+
+    /**
+     * 日志保存(仅设备增删改)
+     * @param operateLogEntity
+     * @return
+     */
+    @PostMapping("/operateLog/insert")
+    AjaxMessage<Integer> insert(OperateLogEntity operateLogEntity);
+
+}

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

@@ -0,0 +1,25 @@
+package com.huaxu.config;
+
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 8:52
+ */
+@Configuration
+public class FeignConfig implements RequestInterceptor {
+    @Override
+    public void apply(RequestTemplate requestTemplate) {
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = attributes.getRequest();
+        requestTemplate.header(HttpHeaders.AUTHORIZATION, request.getHeader(HttpHeaders.AUTHORIZATION));
+    }
+}

+ 115 - 0
sms_water/src/main/java/com/huaxu/controller/AlarmDetailsController.java

@@ -0,0 +1,115 @@
+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.dto.AlarmDetailsDto;
+import com.huaxu.entity.AlarmDetailsEntity;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.Pagination;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.AlarmDetailsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.web.bind.annotation.*;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:05
+ */
+@RestController
+@RequestMapping("/AlarmDetails")
+@Api(tags = "报警详情信息管理")
+@Slf4j
+public class AlarmDetailsController {
+
+    @Autowired
+    private AlarmDetailsService alarmDetailsService;
+
+    @RequestMapping(value="get" , method = RequestMethod.GET)
+    @ApiOperation(value = "查询单个报警详情信息")
+    public AjaxMessage<AlarmDetailsEntity> get( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.selectById(id));
+    }
+
+    @RequestMapping(value="selectPage" , method = RequestMethod.GET)
+    @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) Integer opState,
+            @ApiParam(value = "查询:开始时间") @RequestParam(required = false) String startTime,
+            @ApiParam(value = "查询:结束时间") @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<AlarmDetailsDto> 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.selectPage(iPage,alarmDetailsDto);
+        Pagination<AlarmDetailsDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
+
+    @RequestMapping(value="add" , method = RequestMethod.POST)
+    @ApiOperation(value = "新增报警详情信息")
+    public AjaxMessage<Integer> add(@ApiParam(value = "报警详情信息") @RequestBody AlarmDetailsEntity alarmDetailsEntity){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.insert(alarmDetailsEntity));
+    }
+
+    @RequestMapping(value="edit" , method = RequestMethod.POST)
+    @ApiOperation(value = "修改报警详情信息")
+    public AjaxMessage<Integer> edit( @ApiParam(value = "报警详情信息") @RequestBody AlarmDetailsEntity alarmDetailsEntity){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.update(alarmDetailsEntity));
+    }
+
+    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @ApiOperation(value = "单个删除报警详情信息")
+    public AjaxMessage<Integer> delete( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.deleteById(id));
+    }
+
+    @RequestMapping(value="suspendedById" , method = RequestMethod.POST)
+    @ApiOperation(value = "挂起报警信息")
+    public AjaxMessage<Integer> suspendedById( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.suspendedById(id,0));
+    }
+
+    @RequestMapping(value="renewById" , method = RequestMethod.POST)
+    @ApiOperation(value = "恢复挂起报警信息")
+    public AjaxMessage<Integer> renewById( @ApiParam(value = "报警详情信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, alarmDetailsService.suspendedById(id,1));
+    }
+}

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

@@ -0,0 +1,91 @@
+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.dto.DeviceDto;
+import com.huaxu.entity.DeviceEntity;
+import com.huaxu.logAdvice.LogAnnotation;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.Pagination;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.DeviceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:05
+ */
+@RestController
+@RequestMapping("/devcie")
+@Api(tags = "设备信息管理")
+public class DeviceController {
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @RequestMapping(value="get" , method = RequestMethod.GET)
+    @ApiOperation(value = "查询单个设备信息")
+    public AjaxMessage<DeviceDto> get( @ApiParam(value = "设备信息id") @RequestParam Integer id){
+         return new AjaxMessage<>(ResultStatus.OK, deviceService.selectById(id));
+    }
+
+    @RequestMapping(value="selectPage" , method = RequestMethod.GET)
+    @ApiOperation(value = "分页查询设备信息")
+    public AjaxMessage<Pagination<DeviceDto>> selectPage(
+            @ApiParam(value = "设备信息id") @RequestParam(required = false)  Integer id,
+            @ApiParam(value = "设备编号/名称") @RequestParam(required = false)  String condition,
+                @ApiParam(value = "所属公司") @RequestParam(required = false)  Integer companyOrgId,
+            @ApiParam(value = "所属部门") @RequestParam(required = false)  Integer deptOrgId,
+            @ApiParam(value = "所属场景id") @RequestParam(required = false)  Integer sceneId,
+            @ApiParam(value = "设备状态") @RequestParam(required = false) Integer enableState,
+            @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+            @ApiParam(value = "条数,非必传,默认10条",  defaultValue = "10") @RequestParam(required = false, defaultValue = "10") Integer pageSize
+    ){
+        DeviceDto deviceDto = new DeviceDto();
+        deviceDto.setCondition(condition);
+        deviceDto.setCompanyOrgId(companyOrgId);
+        deviceDto.setDeptOrgId(deptOrgId);
+        deviceDto.setSceneId(sceneId);
+        deviceDto.setEnableState(enableState);
+        deviceDto.setId(id);
+
+        IPage<DeviceDto> iPage = new Page<>(pageNum, pageSize);
+        if(iPage.orders().size() == 0){
+            OrderItem orderItem =new OrderItem();
+            orderItem.setAsc(false);
+            orderItem.setColumn("d.date_create");
+            iPage.orders().add(orderItem);
+        }
+        iPage = deviceService.selectPage(iPage,deviceDto);
+        Pagination<DeviceDto> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
+
+    @RequestMapping(value="add" , method = RequestMethod.POST)
+    @ApiOperation(value = "新增设备信息")
+    @LogAnnotation(module = "【设备管理】新增")
+    public AjaxMessage<Integer> add( @ApiParam(value = "设备信息") @RequestBody DeviceEntity deviceEntity){
+        return new AjaxMessage<>(ResultStatus.OK, deviceService.add(deviceEntity));
+    }
+
+    @RequestMapping(value="edit" , method = RequestMethod.POST)
+    @ApiOperation(value = "修改设备信息")
+    @LogAnnotation(module = "【设备管理】修改")
+    public AjaxMessage<Integer> edit( @ApiParam(value = "设备信息") @RequestBody DeviceEntity deviceEntity){
+        return new AjaxMessage<>(ResultStatus.OK, deviceService.update(deviceEntity));
+    }
+
+    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @ApiOperation(value = "单个删除设备信息")
+    @LogAnnotation(module = "【设备管理】删除")
+    public AjaxMessage<Integer> delete( @ApiParam(value = "设备信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, deviceService.delete(id));
+    }
+
+}

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

@@ -0,0 +1,82 @@
+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.entity.DeviceParmEntity;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.Pagination;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.DeviceParmService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 11:17
+ */
+@RestController
+@RequestMapping("/devcieParm")
+@Api(tags = "设备参数管理")
+public class DeviceParmController {
+
+    @Autowired
+    private DeviceParmService deviceParmService;
+
+    @RequestMapping(value="get" , method = RequestMethod.GET)
+    @ApiOperation(value = "查询单个设备参数信息")
+    public AjaxMessage<DeviceParmEntity> get(@ApiParam(value = "设备参数信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectById(id));
+    }
+
+    @RequestMapping(value="selectPage" , method = RequestMethod.GET)
+    @ApiOperation(value = "分页查询设备参数信息")
+    public AjaxMessage<Pagination<DeviceParmEntity>> selectPage(
+            @ApiParam(value = "设备参数信息id") @RequestParam(required = false) Integer id,
+            @ApiParam(value = "页数,非必传,默认第一页",  defaultValue = "1") @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+            @ApiParam(value = "条数,非必传,默认10条",  defaultValue = "10") @RequestParam(required = false, defaultValue = "10") Integer pageSize
+    ){
+        DeviceParmEntity deviceDto = new DeviceParmEntity();
+        IPage<DeviceParmEntity> iPage = new Page<>(pageNum, pageSize);
+        if(iPage.orders().size() == 0){
+            OrderItem orderItem =new OrderItem();
+            orderItem.setAsc(false);
+            orderItem.setColumn("d.date_create");
+            iPage.orders().add(orderItem);
+        }
+        iPage = deviceParmService.selectPage(iPage,deviceDto);
+        Pagination<DeviceParmEntity> pages = new Pagination<>(iPage);
+        return new AjaxMessage<>(ResultStatus.OK, pages);
+    }
+
+    @RequestMapping(value="add" , method = RequestMethod.POST)
+    @ApiOperation(value = "新增设备参数信息")
+    public AjaxMessage<Integer> add(@ApiParam(value = "设备参数信息") @RequestBody List<DeviceParmEntity> deviceParmEntities){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.batchInsert(deviceParmEntities));
+    }
+
+    @RequestMapping(value="edit" , method = RequestMethod.POST)
+    @ApiOperation(value = "修改设备参数信息")
+    public AjaxMessage<Integer> edit( @ApiParam(value = "设备参数信息") @RequestBody DeviceParmEntity deviceParmEntity){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.update(deviceParmEntity));
+    }
+    @RequestMapping(value="batchEdit" , method = RequestMethod.POST)
+    @ApiOperation(value = "批量修改设备参数信息")
+    public AjaxMessage<Integer> batchEdit( @ApiParam(value = "设备参数信息") @RequestBody List<DeviceParmEntity> deviceParmEntities){
+        deviceParmService.batchUpdate(deviceParmEntities);
+        return new AjaxMessage<>(ResultStatus.OK,1 );
+    }
+
+    @RequestMapping(value="delete" , method = RequestMethod.DELETE)
+    @ApiOperation(value = "单个删除设备参数信息")
+    public AjaxMessage<Integer> delete( @ApiParam(value = "设备参数信息id") @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.delete(id));
+    }
+
+}

+ 65 - 0
sms_water/src/main/java/com/huaxu/dao/AlarmDetailMapper.java

@@ -0,0 +1,65 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.entity.AlarmDetailsEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 14:40
+ */
+@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("satte") Integer state);
+
+    /**
+     * 修改设备信息
+     * @return
+     */
+    Integer update(AlarmDetailsEntity alarmDetailsEntity);
+
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<AlarmDetailsDto> selectList(AlarmDetailsDto alarmDetailsDto);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto);
+}

+ 60 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceMapper.java

@@ -0,0 +1,60 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.DeviceDto;
+import com.huaxu.entity.DeviceEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:36
+ */
+@Mapper
+public interface DeviceMapper {
+
+    /**
+     * 查询单个设备
+     * @return
+     */
+    DeviceDto selectById(Integer id);
+
+    /**
+     * 添加设备
+     * @return
+     */
+    Integer insert(DeviceEntity deviceEntity);
+
+    /**
+     * 批量插入设备信息
+     * @param devices
+     * @return
+     */
+    Integer batchInsert(List<DeviceEntity> devices);
+
+    /**
+     * 单条删除设备
+     * @return
+     */
+    Integer deleteById(Integer id);
+
+    /**
+     * 修改设备信息
+     * @return
+     */
+    Integer update(DeviceEntity deviceEntity);
+
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<DeviceEntity> selectList(DeviceDto deviceDto);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<DeviceDto> selectPage(IPage<DeviceDto> page, DeviceDto deviceDto);
+}

+ 66 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceParmMapper.java

@@ -0,0 +1,66 @@
+package com.huaxu.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.entity.DeviceParmEntity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 10:57
+ */
+@Mapper
+public interface DeviceParmMapper {
+
+    /**
+     * 查询单个设备
+     * @return
+     */
+    DeviceParmEntity selectById(Integer id);
+
+    /**
+     * 添加设备
+     * @return
+     */
+    Integer insert(DeviceParmEntity deviceEntity);
+
+    /**
+     * 批量插入设备信息
+     * @param deviceParms
+     * @return
+     */
+    Integer batchInsert( @Param("deviceParms") List<DeviceParmEntity> deviceParms);
+
+    /**
+     * 单条删除设备
+     * @return
+     */
+    Integer deleteById(Integer id);
+
+    /**
+     * 单条删除设备
+     * @return
+     */
+    Integer deleteByDeviceId(Integer deviceId);
+
+    /**
+     * 修改设备信息
+     * @return
+     */
+    Integer update(DeviceParmEntity deviceEntity);
+
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<DeviceParmEntity> selectList(DeviceParmEntity deviceParmEntity);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity);
+}

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

@@ -0,0 +1,43 @@
+package com.huaxu.dto;
+
+import com.huaxu.entity.AlarmDetailsEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:48
+ */
+@Api("报警信息")
+@Data
+public class AlarmDetailsDto extends AlarmDetailsEntity {
+
+    private static final long serialVersionUID = -3866939316262264972L;
+
+    @ApiModelProperty("所属场景")
+    private String sceneName;
+    @ApiModelProperty("设备名称")
+    private String deviceName;
+    @ApiModelProperty("设备类型")
+    private Integer devcieType;
+    @ApiModelProperty("地址")
+    private String address;
+    @ApiModelProperty("经度")
+    private BigDecimal pointX;
+    @ApiModelProperty("维度")
+    private BigDecimal pointY;
+
+    @ApiModelProperty(value ="查询条件:场景名称/设备名称",hidden = true)
+    private String condition;
+
+    @ApiModelProperty(value = "开始时间",hidden = true)
+    private Date startTime;
+    @ApiModelProperty(value = "结束时间" ,hidden = true)
+    private Date endTime;
+
+}

+ 36 - 0
sms_water/src/main/java/com/huaxu/dto/DeviceDto.java

@@ -0,0 +1,36 @@
+package com.huaxu.dto;
+
+import com.huaxu.entity.DeviceEntity;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:47
+ */
+@Data
+@ApiModel("设备信息")
+public class DeviceDto extends DeviceEntity {
+
+    private static final long serialVersionUID = 7372833323037926558L;
+
+    @ApiModelProperty("设备编号或名称")
+    private String condition;
+    @ApiModelProperty("场景名称")
+    private String sceneName;
+    @ApiModelProperty("厂商名称")
+    private String manufacturerName;
+    @ApiModelProperty("厂商id")
+    private Integer manufacturerId;
+    @ApiModelProperty("设备类型")
+    private String deviceType;
+    @ApiModelProperty("设备型号")
+    private String deviceMode;
+
+}
+
+
+

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

@@ -0,0 +1,69 @@
+package com.huaxu.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * @description 报警详情信息实体类(uims_tenant)
+ * @auto wangli
+ * @data 2020-11-16 10:47
+ */
+@Data
+@ApiModel("报警详情信息")
+public class AlarmDetailsEntity implements Serializable {
+
+    private static final long serialVersionUID = 6916916266193290481L;
+
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    @ApiModelProperty(value = "设备信息")
+    private Integer deviceId;
+    @ApiModelProperty(value = "所属公司")
+    private Integer companyOrgId;
+    @ApiModelProperty(value = "所属部门")
+    private Integer deptOrgId;
+
+    @ApiModelProperty(value = "报警类型")
+    private Integer alarmType;
+    @ApiModelProperty(value = "报警参数ID")
+    private Integer attributeId;
+    @ApiModelProperty(value = "当前数值")
+    private BigDecimal alarmValue;
+    @ApiModelProperty(value = "报警详情")
+    private String alarmContent;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "报警开始时间",example = "2020-12-12 12:12:12")
+    private Date alarmStartTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "报警结束时间",example = "2020-12-12 12:12:12")
+    private Date alarmEndTime;
+    @ApiModelProperty(value = "报警状态")
+    private Integer state;
+    @ApiModelProperty(value = "处理状态")
+    private Integer opState;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "数据删除标识")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间",example = "2020-12-12 12:12:12")
+    private Date dateCreate;
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间",example = "2020-12-12 12:12:12")
+    private Date dateUpdate;
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+}

+ 69 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceEntity.java

@@ -0,0 +1,69 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+
+/**
+ * @description 设备信息实体类(uims_tenant)
+ * @auto wangli
+ * @data 2020-11-16 10:47
+ */
+@Data
+@ApiModel("设备信息")
+public class DeviceEntity implements Serializable {
+
+
+    private static final long serialVersionUID = 6722509154948828769L;
+
+    @ApiModelProperty(value = "主键id")
+    private Integer id;
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+
+    @ApiModelProperty(value = "设备编号")
+    private Integer deviceCode;
+    @ApiModelProperty(value = "设备型号")
+    private Integer deviceTypeId;
+    @ApiModelProperty(value = "所属公司")
+    private Integer companyOrgId;
+    @ApiModelProperty(value = "所属部门")
+    private Integer deptOrgId;
+    @ApiModelProperty(value = "所属场景")
+    private Integer sceneId;
+    @ApiModelProperty(value = "经度")
+    private BigDecimal pointX;
+    @ApiModelProperty(value = "纬度")
+    private BigDecimal pointY;
+    @ApiModelProperty(value = "设备状态")
+    private Integer enableState;
+    @ApiModelProperty(value = "最后上报时间")
+    private Date lastUpdateTime;
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "数据删除标识")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间",example = "2020-12-12 12:12:12")
+    private Date dateCreate;
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间",example = "2020-12-12 12:12:12")
+    private Date dateUpdate;
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+}

+ 60 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceParmEntity.java

@@ -0,0 +1,60 @@
+package com.huaxu.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 10:20
+ */
+@Data
+@ApiModel("设备参数")
+public class DeviceParmEntity implements Serializable {
+
+    private static final long serialVersionUID = 1433873379975513916L;
+
+    @ApiModelProperty("主键id")
+    private Integer id;
+    @ApiModelProperty("租户标识")
+    private String tenantId;
+    @ApiModelProperty("设备id")
+    private Integer deviceId;
+    @ApiModelProperty("设备属性id")
+    private Integer attributeId;
+    @ApiModelProperty("设备属性名称")
+    private Integer attributeName;
+    @ApiModelProperty("是否地图悬浮显示")
+    private Integer isSuspension;
+    @ApiModelProperty("是否统计报表参数")
+    private Integer isReport;
+    @ApiModelProperty("是否统计图表参数")
+    private Integer isChart;
+    @ApiModelProperty("是否地图参数")
+    private Integer isMap;
+    @ApiModelProperty("是否报警参数")
+    private Integer isAlarm;
+    @ApiModelProperty("是否工艺图参数")
+    private Integer isArtwork;
+
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    @ApiModelProperty(value = "数据删除标识")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间",example = "2020-12-12 12:12:12")
+    private Date dateCreate;
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间",example = "2020-12-12 12:12:12")
+    private Date dateUpdate;
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+}

+ 51 - 0
sms_water/src/main/java/com/huaxu/entity/OperateLogEntity.java

@@ -0,0 +1,51 @@
+package com.huaxu.entity;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @description 操作日志实体类(uims_opr_log)
+ * @auto wangli
+ * @data 2020-10-26 15:53
+ */
+@Data
+public class OperateLogEntity implements Serializable {
+
+    private static final long serialVersionUID = 7048815501996712070L;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "主键id")
+    private Long id ;
+    @ExcelProperty(value = {"操作日志","用户名"},index = 2)
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+    @ExcelProperty(value = {"操作日志","手机号"},index = 3)
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ExcelIgnore
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    @ExcelIgnore
+    @ApiModelProperty(value = "公司id")
+    private Integer companyId;
+    @ExcelIgnore
+    @ApiModelProperty(value = "部门id")
+    private Integer departmentId;
+    @ExcelProperty(value = {"操作日志","操作内容"},index = 4)
+    @ApiModelProperty(value = "操作内容")
+    private String operateContent;
+    @ApiModelProperty(value = "操作参数",hidden = true)
+    private String operateParameter;
+    @ExcelProperty(value = {"操作日志","创建时间"},index = 5)
+    @ApiModelProperty(value = "创建时间",example = "2020-12-12 12:12:12")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+}

+ 16 - 0
sms_water/src/main/java/com/huaxu/logAdvice/LogAnnotation.java

@@ -0,0 +1,16 @@
+package com.huaxu.logAdvice;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 日志注解
+ *
+ */
+@Target({ ElementType.TYPE,ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LogAnnotation {
+	String module() default "";
+}

+ 92 - 0
sms_water/src/main/java/com/huaxu/logAdvice/OperateLogAdvice.java

@@ -0,0 +1,92 @@
+package com.huaxu.logAdvice;
+
+import com.huaxu.client.UserCenterClient;
+import com.huaxu.entity.OperateLogEntity;
+import com.huaxu.model.LoginUser;
+import com.huaxu.util.UserUtil;
+import io.swagger.annotations.ApiOperation;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import java.lang.reflect.Method;
+import java.util.Date;
+
+/**
+ * @description 统一日志处理 :通过自定义注解获取操作名称
+ * @auto wangli
+ * @data 2020-11-09 8:43
+ */
+@Aspect
+@Component
+public class OperateLogAdvice {
+
+    @Autowired
+    private UserCenterClient userCenterClient;
+
+    @Around(value = "@annotation(com.huaxu.logAdvice.LogAnnotation)")
+    public Object logSave(ProceedingJoinPoint joinPoint) throws Throwable {
+        //参数存储
+        StringBuffer stringBuffer=new StringBuffer();
+        try{
+            //1.获取到所有的参数值的数组
+            Object[] args = joinPoint.getArgs();
+            Signature signature = joinPoint.getSignature();
+            MethodSignature methodSignature = (MethodSignature) signature;
+            //2.获取到方法的所有参数名称的字符串数组
+            String[] parameterNames = methodSignature.getParameterNames();
+            //拼装参数
+            for (int i =0 ,len=parameterNames.length;i < len ;i++){
+                stringBuffer.append("\r\n参数名:"+ parameterNames[i] + " = " +args[i]);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        OperateLogEntity operateLog = new OperateLogEntity();
+        LoginUser user = UserUtil.getCurrentUser();
+        if (user != null) {
+            // 设置当前登录用户
+            operateLog.setUserName(user.getUsername());
+            operateLog.setPhone(user.getPhoneNumber());
+            operateLog.setTenantId(user.getTenantId());
+            operateLog.setCompanyId(user.getCompanyId());
+            operateLog.setDepartmentId(user.getDepartmentId());
+            MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
+
+            String module = null;//ApiOperation注解的模块名
+            LogAnnotation logAnnotation = methodSignature.getMethod().getDeclaredAnnotation(LogAnnotation.class);
+            module = logAnnotation.module();
+            ApiOperation methodApiOperation = methodSignature.getMethod().getDeclaredAnnotation(ApiOperation.class);
+            if (methodApiOperation != null) {
+                module =methodApiOperation.value();
+            }
+
+            // 没有指定日志module ,获取方法
+            if (StringUtils.isEmpty(module)) {
+                Method method = methodSignature.getMethod();
+                module= method.getDeclaringClass().getName()+method.getName();
+            }
+            operateLog.setOperateContent(module);
+
+            try {
+                return  joinPoint.proceed();
+            } catch (Exception e) {
+                operateLog.setOperateContent(operateLog.getOperateContent()+"__操作抛出异常");
+                throw e;
+            } finally {
+                if (operateLog.getUserName() != null) {
+                    operateLog.setCreateTime(new Date());
+                    userCenterClient.insert(operateLog);
+                }
+            }
+        }else {
+            return joinPoint.proceed();
+        }
+    }
+}

+ 63 - 0
sms_water/src/main/java/com/huaxu/service/AlarmDetailsService.java

@@ -0,0 +1,63 @@
+package com.huaxu.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.AlarmDetailsDto;
+import com.huaxu.entity.AlarmDetailsEntity;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 15:43
+ */
+public interface AlarmDetailsService {
+
+    /**
+     * 查询单个设备
+     * @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(Integer id , Integer state);
+
+    /**
+     * 修改设备信息
+     * @return
+     */
+    Integer update(AlarmDetailsEntity alarmDetailsEntity);
+
+    /**
+     * 查询设备信息
+     * @return
+     */
+    List<AlarmDetailsDto> selectList(AlarmDetailsDto alarmDetailsDto);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto);
+}

+ 60 - 0
sms_water/src/main/java/com/huaxu/service/DeviceParmService.java

@@ -0,0 +1,60 @@
+package com.huaxu.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.entity.DeviceParmEntity;
+
+import java.util.List;
+
+/**
+ * @description 设备参数
+ * @auto wangli
+ * @data 2020-11-17 11:01
+ */
+public interface DeviceParmService {
+    /**
+     * 查询单个设备参数
+     * @return
+     */
+    DeviceParmEntity selectById(Integer id);
+    /**
+     * 添加设备参数
+     * @return
+     */
+    Integer insert(DeviceParmEntity deviceParmEntity);
+
+    /**
+     * 批量添加设备参数
+     * @return
+     */
+    Integer batchInsert(List<DeviceParmEntity> deviceParmEntities);
+    /**
+     * 单条删除设备参数
+     * @return
+     */
+    Integer delete(Integer id);
+
+    /**
+     * 修改设备参数信息
+     * @return
+     */
+    Integer update(DeviceParmEntity deviceParmEntity);
+
+    /**
+     * 批量修改设备参数信息
+     * @return
+     */
+    void batchUpdate(List<DeviceParmEntity> deviceParmEntities);
+
+    /**
+     * 查询设备参数信息
+     * @param deviceParmEntity
+     * @return
+     */
+    List<DeviceParmEntity> selectList(DeviceParmEntity deviceParmEntity);
+    
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity);
+}

+ 42 - 0
sms_water/src/main/java/com/huaxu/service/DeviceService.java

@@ -0,0 +1,42 @@
+package com.huaxu.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.DeviceDto;
+import com.huaxu.entity.DeviceEntity;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:26
+ */
+public interface DeviceService {
+
+    /**
+     * 查询单个设备
+     * @return
+     */
+    DeviceDto selectById(Integer id);
+    /**
+     * 添加设备
+     * @return
+     */
+    Integer add(DeviceEntity deviceEntity);
+
+    /**
+     * 单条删除设备
+     * @return
+     */
+    Integer delete(Integer id);
+
+    /**
+     * 修改设备信息
+     * @return
+     */
+    Integer update(DeviceEntity deviceEntity);
+
+    /**
+     * 分页查询
+     * @return
+     */
+    IPage<DeviceDto> selectPage(IPage<DeviceDto> page, DeviceDto deviceDto);
+}

+ 63 - 0
sms_water/src/main/java/com/huaxu/service/impl/AlarmDetailsServiceImpl.java

@@ -0,0 +1,63 @@
+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.entity.AlarmDetailsEntity;
+import com.huaxu.service.AlarmDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-17 15:48
+ */
+@Service
+public class AlarmDetailsServiceImpl implements AlarmDetailsService {
+
+    @Autowired
+    private AlarmDetailMapper alarmDetailMapper;
+
+    @Override
+    public AlarmDetailsDto selectById(Integer id) {
+        return alarmDetailMapper.selectById(id);
+    }
+
+    @Override
+    public Integer insert(AlarmDetailsEntity alarmDetailsEntity) {
+        return alarmDetailMapper.insert(alarmDetailsEntity);
+    }
+
+    @Override
+    public Integer batchInsert(List<AlarmDetailsEntity> alarmDetails) {
+        return alarmDetailMapper.batchInsert(alarmDetails);
+    }
+
+    @Override
+    public Integer deleteById(Integer id) {
+        return alarmDetailMapper.deleteById(id);
+    }
+
+    @Override
+    public Integer suspendedById(Integer id , Integer state) {
+        return alarmDetailMapper.suspendedById(id,state);
+    }
+
+    @Override
+    public Integer update(AlarmDetailsEntity alarmDetailsEntity) {
+        return alarmDetailMapper.update(alarmDetailsEntity);
+    }
+
+    @Override
+    public List<AlarmDetailsDto> selectList(AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectList(alarmDetailsDto);
+    }
+
+    @Override
+    public IPage<AlarmDetailsDto> selectPage(IPage<AlarmDetailsDto> page, AlarmDetailsDto alarmDetailsDto) {
+        return alarmDetailMapper.selectPage(page,alarmDetailsDto);
+    }
+}

+ 79 - 0
sms_water/src/main/java/com/huaxu/service/impl/DeviceParmServiceImpl.java

@@ -0,0 +1,79 @@
+package com.huaxu.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dao.DeviceParmMapper;
+import com.huaxu.entity.DeviceParmEntity;
+import com.huaxu.model.LoginUser;
+import com.huaxu.service.DeviceParmService;
+import com.huaxu.util.UserUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @description 设备参数
+ * @auto wangli
+ * @data 2020-11-17 11:02
+ */
+@Service
+public class DeviceParmServiceImpl implements DeviceParmService {
+
+    @Resource
+    private DeviceParmMapper deviceParmMapper;
+
+    @Override
+    public DeviceParmEntity selectById(Integer id) {
+        return deviceParmMapper.selectById(id);
+    }
+
+    @Override
+    public Integer insert(DeviceParmEntity deviceParmEntity) {
+        return deviceParmMapper.insert(deviceParmEntity);
+    }
+
+    @Override
+    public Integer batchInsert(List<DeviceParmEntity> deviceParmEntities){
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        for(DeviceParmEntity deviceParmEntity:deviceParmEntities){
+            deviceParmEntity.setDateUpdate(new Date());
+            deviceParmEntity.setUpdateBy(loginUser.getUsername());
+            deviceParmEntity.setDateCreate(new Date());
+            deviceParmEntity.setCreateBy(loginUser.getUsername());
+            deviceParmEntity.setStatus(1);
+            deviceParmEntity.setTenantId(loginUser.getTenantId());
+        }
+        return deviceParmMapper.batchInsert(deviceParmEntities);
+    }
+
+    @Override
+    public Integer delete(Integer id) {
+        return deviceParmMapper.deleteById(id);
+    }
+
+    @Override
+    public Integer update(DeviceParmEntity deviceParmEntity) {
+        return deviceParmMapper.update(deviceParmEntity);
+    }
+
+    @Override
+    public void batchUpdate(List<DeviceParmEntity> deviceParmEntities) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        for(DeviceParmEntity deviceParmEntity:deviceParmEntities){
+            deviceParmEntity.setDateUpdate(new Date());
+            deviceParmEntity.setUpdateBy(loginUser.getUsername());
+            deviceParmMapper.update(deviceParmEntity);
+        }
+    }
+
+    @Override
+    public List<DeviceParmEntity> selectList(DeviceParmEntity deviceParmEntity) {
+        return deviceParmMapper.selectList(deviceParmEntity);
+    }
+
+    @Override
+    public IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity) {
+        return deviceParmMapper.selectPage(page,deviceParmEntity);
+    }
+}

+ 61 - 0
sms_water/src/main/java/com/huaxu/service/impl/DeviceServiceImpl.java

@@ -0,0 +1,61 @@
+package com.huaxu.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dao.DeviceMapper;
+import com.huaxu.dto.DeviceDto;
+import com.huaxu.entity.DeviceEntity;
+import com.huaxu.model.LoginUser;
+import com.huaxu.service.DeviceService;
+import com.huaxu.util.UserUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @description
+ * @auto wangli
+ * @data 2020-11-16 11:26
+ */
+@Service
+public class DeviceServiceImpl implements DeviceService {
+
+    @Resource
+    private DeviceMapper deviceMapper;
+
+    @Override
+    public DeviceDto selectById(Integer id) {
+        return deviceMapper.selectById(id);
+    }
+
+    @Override
+    public Integer add(DeviceEntity deviceEntity) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        deviceEntity.setUpdateBy(loginUser.getUsername());
+        deviceEntity.setDateUpdate(new Date());
+        deviceEntity.setCreateBy(loginUser.getUsername());
+        deviceEntity.setDateCreate(new Date());
+        deviceEntity.setTenantId(loginUser.getTenantId());
+        deviceEntity.setStatus(1);
+        return deviceMapper.insert(deviceEntity);
+    }
+
+    @Override
+    public Integer delete(Integer id) {
+
+        return deviceMapper.deleteById(id);
+    }
+
+    @Override
+    public Integer update(DeviceEntity deviceEntity) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        deviceEntity.setUpdateBy(loginUser.getUsername());
+        deviceEntity.setDateUpdate(new Date());
+        return deviceMapper.update(deviceEntity);
+    }
+
+    @Override
+    public IPage<DeviceDto> selectPage(IPage<DeviceDto> page,  DeviceDto deviceDto) {
+        return deviceMapper.selectPage(page,deviceDto);
+    }
+}

+ 14 - 0
sms_water/src/main/resources/logback-spring.xml

@@ -3,6 +3,19 @@
     <springProperty scope="context" name="LOG_PATH" source="logging.path" defaultValue="/tmp" />
     <include resource="org/springframework/boot/logging/logback/defaults.xml" />
     <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
+
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
     <appender name="TIME_FILE"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
         <encoder>
@@ -16,6 +29,7 @@
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
     </appender>
+
     <root level="INFO">
         <appender-ref ref="CONSOLE" />
         <appender-ref ref="TIME_FILE" />

+ 183 - 0
sms_water/src/main/resources/mapper/AlarmDetailMapper.xml

@@ -0,0 +1,183 @@
+<?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.huaxu.dao.AlarmDetailMapper">
+
+    <sql id="Base_Column_List">
+            a.ID as "id"
+            ,a.TENANT_ID as "tenantId"
+            ,a.DEVICE_ID as "deviceId"
+            ,a.COMPANY_ORG_ID as "companyOrgId"
+            ,a.DEPT_ORG_ID as "deptOrgId"
+            ,a.ALARM_TYPE as "alarmType"
+            ,a.ATTRIBUTE_ID as "attributeId"
+            ,a.ALARM_VALUE as "alarmValue"
+            ,a.ALARM_CONTENT as "alarmContent"
+            ,a.ALARM_START_TIME as "alarmStartTime"
+            ,a.ALARM_END_TIME as "alarmEndTime"
+            ,a.STATE as "state"
+            ,a.OP_STATE as "opState"
+            ,a.REMARK as "remark"
+            ,a.STATUS as "status"
+            ,a.DATE_CREATE as "dateCreate"
+            ,a.CREATE_BY as "createBy"
+            ,a.DATE_UPDATE as "dateUpdate"
+            ,a.UPDATE_BY as "updateBy"
+
+            ,s.SCENE_NAME as "sceneName"
+            ,d.DEVICE_NAME as "deviceName"
+            ,t.DEVICE_TYPE as "devcieType"
+            ,d.ADDRESS as "address"
+            ,d.POINT_X as "pointX"
+            ,d.POINT_Y as "pointY"
+    </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
+        left join sms_device_type t on d.DEVICE_TYPE_ID =t.ID
+    </sql>
+    <select id="selectById" resultType="com.huaxu.dto.AlarmDetailsDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where a.`STATUS` = 1
+            and a.id=#{id}
+    </select>
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectList" resultType="com.huaxu.dto.AlarmDetailsDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 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>
+
+    <!-- 新增所有列 -->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        INSERT INTO  sms_alarm_details (  TENANT_ID ,  DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
+        VALUES ( #{tenantId} ,  #{deviceId} ,  #{companyOrgId} ,  #{deptOrgId} ,  #{alarmType} ,  #{attributeId} ,  #{alarmValue} ,  #{alarmContent} ,  #{alarmStartTime} ,  #{alarmEndTime} ,  #{state} ,  #{opState} ,  #{remark} ,  #{status} ,  #{dateCreate} ,  #{createBy} ,  #{dateUpdate} ,  #{updateBy} )
+    </insert>
+
+    <!-- 批量新增 -->
+    <insert id="batchInsert">
+        INSERT INTO  sms_alarm_details (  TENANT_ID ,  DEVICE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  ALARM_TYPE ,  ATTRIBUTE_ID ,  ALARM_VALUE ,  ALARM_CONTENT ,  ALARM_START_TIME ,  ALARM_END_TIME ,  STATE ,  OP_STATE ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
+        values
+        <foreach collection="alarmDetails" item="item" index="index" separator=",">
+            ( #{item.tenantId} ,  #{item.deviceId} ,  #{item.companyOrgId} ,  #{item.deptOrgId} ,  #{item.alarmType} ,  #{item.attributeId} ,  #{item.alarmValue} ,  #{item.alarmContent} ,  #{item.alarmStartTime} ,  #{item.alarmEndTime} ,  #{item.state} ,  #{item.opState} ,  #{item.remark} ,  #{item.status} ,  #{item.dateCreate} ,  #{item.createBy} ,  #{item.dateUpdate} ,  #{item.updateBy} )
+        </foreach>
+    </insert>
+
+    <!-- 通过主键修改数据 -->
+    <update id="update">
+        UPDATE  sms_alarm_details
+        <set>
+            <if test="tenantId != null and tenantId != '' ">
+                TENANT_ID  = #{tenantId},
+            </if>
+            <if test="deviceId != null ">
+                DEVICE_ID  = #{deviceId},
+            </if>
+            <if test="companyOrgId != null ">
+                COMPANY_ORG_ID  = #{companyOrgId},
+            </if>
+            <if test="deptOrgId != null ">
+                DEPT_ORG_ID  = #{deptOrgId},
+            </if>
+            <if test="alarmType != null ">
+                ALARM_TYPE  = #{alarmType},
+            </if>
+            <if test="attributeId != null ">
+                ATTRIBUTE_ID  = #{attributeId},
+            </if>
+            <if test="alarmValue != null ">
+                ALARM_VALUE  = #{alarmValue},
+            </if>
+            <if test="alarmContent != null and alarmContent != '' ">
+                ALARM_CONTENT  = #{alarmContent},
+            </if>
+            <if test="alarmStartTime != null ">
+                ALARM_START_TIME  = #{alarmStartTime},
+            </if>
+            <if test="alarmStartTime != null ">
+                ALARM_START_TIME  = #{alarmStartTime},
+            </if>
+            <if test="alarmEndTime != null ">
+                ALARM_END_TIME  = #{alarmEndTime},
+            </if>
+            <if test="state != null ">
+                STATE  = #{state},
+            </if>
+            <if test="opState != null ">
+                OP_STATE  = #{opState},
+            </if>
+
+            <if test="remark != null and remark != '' ">
+                REMARK  = #{remark},
+            </if>
+            <if test="status != null ">
+                STATUS  = #{status},
+            </if>
+            <if test="dateUpdate != null ">
+                DATE_UPDATE  = #{dateUpdate},
+            </if>
+            <if test="updateBy != null and updateBy != ''">
+                UPDATE_BY  = #{updateBy}
+            </if>
+        </set>
+        WHERE ID  = #{id};
+    </update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+         UPDATE  sms_alarm_details set STATUS  = 0 where id = #{id}
+    </delete>
+
+    <!-- 报警挂起、恢复 -->
+    <delete id="suspendedById">
+         UPDATE  sms_alarm_details set STATE  = #{state} where id = #{id}
+    </delete>
+
+    <!-- 分页查询 -->
+    <select id="selectPage" resultType="com.huaxu.dto.AlarmDetailsDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_alarm_details a
+        <include refid="alarmDetailJoins"/>
+        where  a.`STATUS` = 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>
+
+
+</mapper>

+ 186 - 0
sms_water/src/main/resources/mapper/DeviceMapper.xml

@@ -0,0 +1,186 @@
+<?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.huaxu.dao.DeviceMapper">
+
+    <sql id="Base_Column_List">
+            d.id
+            ,d.TENANT_ID as "tenantId"
+            ,d.DEVICE_CODE as "deviceCode"
+            ,d.DEVICE_NAME as "deviceName"
+            ,d.DEVICE_TYPE_ID as "deviceTypeId"
+            ,d.COMPANY_ORG_ID as "companyOrgId"
+            ,d.DEPT_ORG_ID as "deptOrgId"
+            ,d.SCENE_ID as "sceneId"
+            ,d.POINT_X as "pointX"
+            ,d.POINT_Y as "pointY"
+            ,d.ENABLE_STATE as "enableState"
+            ,d.LAST_UPDATE_TIME as "lastUpdateTime"
+            ,d.ADDRESS as "address"
+            ,d.REMARK as "remark"
+            ,d.`STATUS` as "status"
+            ,d.DATE_CREATE as "dateCreate"
+            ,d.CREATE_BY as "createBy"
+            ,d.DATE_UPDATE as "dateUpdate"
+            ,d.UPDATE_BY as "updateBy"
+            
+            ,s.SCENE_NAME as "sceneName"
+            
+            ,t.MANUFACTURER_NAME as "manufacturerName"
+            ,t.MANUFACTURER_ID as "manufacturerId"
+            ,t.DEVICE_TYPE as "deviceType"
+            ,t.DEVICE_MODE as "deviceMode"
+    </sql>
+
+    <sql id="deviceJoins">
+        left join sms_scene s on d.SCENE_ID =s.id
+        left join sms_device_type t on d.DEVICE_TYPE_ID = t.id
+    </sql>
+    <select id="selectById" resultType="com.huaxu.dto.DeviceDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device d
+        <include refid="deviceJoins"/>
+        where d.ID = #{id} and d.status = 1
+    </select>
+
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectList" resultType="com.huaxu.dto.DeviceDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device d
+        <include refid="deviceJoins"/>
+        where d.status = 1
+        <if test="deviceDto.id != null ">
+            and d.ID = #{deviceDto.id}
+        </if>
+        <if test="deviceDto.condition != null and deviceDto.condition != ''">
+            and (device_code like concat('%', #{deviceDto.condition},'%') or device_name like concat('%', #{deviceDto.condition},'%'))
+        </if>
+        <if test="deviceDto.companyOrgId != null ">
+            and d.COMPANY_ORG_ID=#{deviceDto.companyOrgId}
+        </if>
+        <if test="deviceDto.deptOrgId != null ">
+            and d.DEPT_ORG_ID =#{deviceDto.deptOrgId}
+        </if>
+        <if test="deviceDto.sceneId != null ">
+            and d.SCENE_ID =#{deviceDto.sceneId}
+        </if>
+        <if test="deviceDto.enableState != null ">
+            and d.ENABLE_STATE =#{deviceDto.enableState}
+        </if>
+        <if test="deviceDto.sceneName != null and deviceDto.sceneName != ''">
+            and s.SCENE_NAME like concat('%', #{sceneName},'%')
+        </if>
+    </select>
+
+    <!-- 新增所有列 -->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        INSERT INTO  sms_device ( TENANT_ID ,  DEVICE_CODE ,  DEVICE_NAME ,  DEVICE_TYPE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  SCENE_ID ,  POINT_X ,  POINT_Y ,  ENABLE_STATE ,  LAST_UPDATE_TIME ,  ADDRESS ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
+        VALUES ( #{tenantId} ,#{deviceCode} ,#{deviceName}  ,#{deviceTypeId} ,#{companyOrgId} ,#{deptOrgId} ,#{sceneId} ,#{pointX} ,#{pointY} ,#{enableState} ,#{lastUpdateTime} ,#{address} ,#{remark} ,#{status} ,#{dateCreate} ,#{createBy} ,#{dateUpdate} ,#{updateBy})
+   </insert>
+
+    <!-- 批量新增 -->
+    <insert id="batchInsert">
+        INSERT INTO  sms_device ( TENANT_ID ,  DEVICE_CODE ,  DEVICE_NAME ,  DEVICE_TYPE_ID ,  COMPANY_ORG_ID ,  DEPT_ORG_ID ,  SCENE_ID ,  POINT_X ,  POINT_Y ,  ENABLE_STATE ,  LAST_UPDATE_TIME ,  ADDRESS ,  REMARK ,  STATUS ,  DATE_CREATE ,  CREATE_BY ,  DATE_UPDATE ,  UPDATE_BY )
+        values
+        <foreach collection="devices" item="item" index="index" separator=",">
+            ( #{item.tenantId} ,#{item.deviceCode} ,#{item.deviceName}  ,#{item.deviceTypeId} ,#{item.companyOrgId} ,#{item.deptOrgId} ,#{item.sceneId} ,#{item.pointX} ,#{item.pointY} ,#{item.enableState} ,#{item.lastUpdateTime} ,#{item.address} ,#{item.remark} ,#{item.status} ,#{item.dateCreate} ,#{item.createBy} ,#{item.dateUpdate} ,#{item.updateBy})
+        </foreach>
+    </insert>
+
+    <!-- 通过主键修改数据 -->
+    <update id="update">
+        UPDATE  sms_device
+        <set>
+        <if test="tenantId != null and tenantId != '' ">
+            TENANT_ID  = #{tenantId},
+        </if>
+        <if test="deviceCode != null ">
+            DEVICE_CODE  = #{deviceCode},
+        </if>
+        <if test="deviceName != null and deviceName != '' ">
+            DEVICE_NAME  = #{deviceName},
+        </if>
+        <if test="deviceTypeId != null ">
+            DEVICE_TYPE_ID  = #{deviceTypeId},
+        </if>
+        <if test="companyOrgId != null ">
+            COMPANY_ORG_ID  = #{companyOrgId},
+        </if>
+        <if test="deptOrgId != null ">
+            DEPT_ORG_ID  = #{deptOrgId},
+        </if>
+        <if test="sceneId != null ">
+            SCENE_ID  = #{sceneId},
+        </if>
+        <if test="pointX != null ">
+            POINT_X  = #{pointX},
+        </if>
+        <if test="pointY != null ">
+            POINT_Y  = #{pointY},
+        </if>
+        <if test="enableState != null ">
+            ENABLE_STATE  = #{enableState},
+        </if>
+        <if test="lastUpdateTime != null ">
+            LAST_UPDATE_TIME  = #{lastUpdateTime},
+        </if>
+        <if test="address != null and address != '' ">
+            ADDRESS  = #{address},
+        </if>
+        <if test="remark != null and remark != '' ">
+            REMARK  = #{remark},
+        </if>
+        <if test="status != null ">
+            STATUS  = #{status},
+        </if>
+        <if test="dateUpdate != null ">
+            DATE_UPDATE  = #{dateUpdate},
+        </if>
+        <if test="updateBy != null and updateBy != ''">
+            UPDATE_BY  = #{updateBy}
+        </if>
+        </set>
+        WHERE
+             ID  = #{id};
+    </update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+         UPDATE  sms_device set STATUS  = 0 where id = #{id}
+    </delete>
+
+
+    <!-- 分页查询 -->
+    <select id="selectPage" resultType="com.huaxu.dto.DeviceDto">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device d
+        <include refid="deviceJoins"/>
+        where d.status = 1
+        <if test="deviceDto.id != null ">
+            and d.ID = #{deviceDto.id}
+        </if>
+        <if test="deviceDto.condition != null and deviceDto.condition != ''">
+            and (device_code like concat('%', #{deviceDto.condition},'%') or device_name like concat('%', #{deviceDto.condition},'%'))
+        </if>
+        <if test="deviceDto.companyOrgId != null ">
+            and d.COMPANY_ORG_ID=#{deviceDto.companyOrgId}
+        </if>
+        <if test="deviceDto.deptOrgId != null ">
+            and d.DEPT_ORG_ID =#{deviceDto.deptOrgId}
+        </if>
+        <if test="deviceDto.sceneId != null ">
+            and d.SCENE_ID =#{deviceDto.sceneId}
+        </if>
+        <if test="deviceDto.enableState != null ">
+            and d.ENABLE_STATE =#{deviceDto.enableState}
+        </if>
+        <if test="deviceDto.sceneName != null and deviceDto.sceneName != ''">
+            and s.SCENE_NAME like concat('%', #{sceneName},'%')
+        </if>
+    </select>
+
+
+</mapper>

+ 140 - 0
sms_water/src/main/resources/mapper/DeviceParmMapper.xml

@@ -0,0 +1,140 @@
+<?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.huaxu.dao.DeviceParmMapper">
+
+    <sql id="Base_Column_List">
+            p.ID as "id"
+            ,p.TENANT_ID as "tenantId"
+            ,p.DEVICE_ID as "deviceId"
+            ,p.ATTRIBUTE_ID as "attributeId"
+            ,p.IS_SUSPENSION as "isSuspension"
+            ,p.IS_REPORT as "isReport"
+            ,p.IS_CHART as "isChart"
+            ,p.IS_MAP as "isMap"
+            ,p.IS_ALARM as "isAlarm"
+            ,p.IS_ARTWORK as "isArtwork"
+            ,p.REMARK as "remark"
+            ,p.STATUS as "status"
+            ,p.DATE_CREATE as "dateCreate"
+            ,p.CREATE_BY as "createBy"
+            ,p.DATE_UPDATE as "dateUpdate"
+            ,p.UPDATE_BY as "updateBy"
+            ,t.`NAME` as "attributeName"
+    </sql>
+
+    <sql id="deviceParmJoins">
+        left join sms_device_attribute t on t.id= p.ATTRIBUTE_ID
+    </sql>
+    <select id="selectById" resultType="com.huaxu.entity.DeviceParmEntity">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device_parm p
+        <include refid="deviceParmJoins"/>
+        where p.ID = #{id} and p.status = 1
+    </select>
+
+
+    <!--通过实体作为筛选条件查询-->
+    <select id="selectList" resultType="com.huaxu.entity.DeviceParmEntity">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device_parm p
+        <include refid="deviceParmJoins"/>
+        where  p.status = 1
+        <if test="id != null">
+            and p.ID = #{id}
+        </if>
+        <if test="deviceId != null">
+            and p.device_id = #{deviceId}
+        </if>
+        <if test="attributeId != null">
+            and p.attribute_id = #{attributeId}
+        </if>
+
+    </select>
+
+    <!-- 新增所有列 -->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        INSERT INTO sms_device_parm (TENANT_ID ,DEVICE_ID ,ATTRIBUTE_ID ,IS_SUSPENSION ,IS_REPORT ,IS_CHART ,IS_MAP ,IS_ALARM ,IS_ARTWORK ,REMARK ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY )
+        VALUES(#{tenantId},#{deviceId},#{attributeId},#{isSuspension},#{isReport},#{isChart},#{isMap},#{isAlarm},#{isArtwork},#{remark},#{status},#{dateCreate},#{createBy},#{dateUpdate},#{updateBy})
+   </insert>
+
+    <!-- 批量新增 -->
+    <insert id="batchInsert">
+        INSERT INTO sms_device_parm (TENANT_ID ,DEVICE_ID ,ATTRIBUTE_ID ,IS_SUSPENSION ,IS_REPORT ,IS_CHART ,IS_MAP ,IS_ALARM ,IS_ARTWORK ,REMARK ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY )
+        values
+        <foreach collection="deviceParms" item="item" index="index" separator=",">
+            (#{item.tenantId},#{item.deviceId},#{item.attributeId},#{item.isSuspension},#{item.isReport},#{item.isChart},#{item.isMap},#{item.isAlarm},#{item.isArtwork},#{item.remark},#{item.status},#{item.dateCreate},#{item.createBy},#{item.dateUpdate},#{item.updateBy})
+        </foreach>
+    </insert>
+
+    <!-- 通过主键修改数据 -->
+    <update id="update">
+        UPDATE  sms_device_parm
+        <set>
+        <if test="tenantId != null and tenantId != '' ">
+            TENANT_ID  = #{tenantId},
+        </if>
+        <if test="deviceId != null ">
+            DEVICE_ID  = #{deviceId},
+        </if>
+        <if test="attributeId != null ">
+            ATTRIBUTE_ID  = #{attributeId},
+        </if>
+        <if test="isSuspension != null ">
+            IS_SUSPENSION  = #{isSuspension},
+        </if>
+        <if test="isReport != null ">
+            IS_REPORT  = #{isReport},
+        </if>
+        <if test="isChart != null ">
+            IS_CHART  = #{isChart},
+        </if>
+        <if test="isMap != null ">
+            IS_MAP  = #{isMap},
+        </if>
+        <if test="isAlarm != null ">
+            IS_ALARM  = #{isAlarm},
+        </if>
+        <if test="isArtwork != null ">
+            IS_ARTWORK  = #{isArtwork},
+        </if>
+        <if test="remark != null and remark != '' ">
+            REMARK  = #{remark},
+        </if>
+        <if test="status != null ">
+            STATUS  = #{status},
+        </if>
+        <if test="dateUpdate != null ">
+            DATE_UPDATE  = #{dateUpdate},
+        </if>
+        <if test="updateBy != null and updateBy != ''">
+            UPDATE_BY  = #{updateBy}
+        </if>
+        </set>
+        WHERE
+             ID  = #{id};
+    </update>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+         UPDATE  sms_device_parm set STATUS  = 0 where id = #{id}
+    </delete>
+
+    <delete id="deleteByDeviceId">
+         UPDATE  sms_device_parm set STATUS  = 0 where device_id = #{deviceId}
+    </delete>
+
+
+    <!-- 分页查询 -->
+    <select id="selectPage" resultType="com.huaxu.entity.DeviceParmEntity">
+        select
+        <include refid="Base_Column_List"/>
+        from sms_device_parm p
+        <include refid="deviceParmJoins"/>
+        where p.status = 1
+
+    </select>
+
+
+</mapper>