Browse Source

Merge remote-tracking branch 'origin/master'

hym 4 years ago
parent
commit
1806d7f78b
36 changed files with 915 additions and 27 deletions
  1. 13 0
      .idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_1_7_RELEASE.xml
  2. 13 0
      .idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_1_7_RELEASE.xml
  3. 5 0
      sms_water/pom.xml
  4. 6 1
      sms_water/src/main/java/com/huaxu/async/CheckDeviceStateAsync.java
  5. 28 0
      sms_water/src/main/java/com/huaxu/config/ApplicationValues.java
  6. 1 1
      sms_water/src/main/java/com/huaxu/config/ResourceServerConfig.java
  7. 66 0
      sms_water/src/main/java/com/huaxu/config/RestTemplateConfig.java
  8. 4 3
      sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java
  9. 29 3
      sms_water/src/main/java/com/huaxu/controller/DeviceController.java
  10. 57 0
      sms_water/src/main/java/com/huaxu/controller/DeviceTypeController.java
  11. 1 1
      sms_water/src/main/java/com/huaxu/controller/SceneController.java
  12. 34 0
      sms_water/src/main/java/com/huaxu/dao/DeviceAttributeMapper.java
  13. 34 0
      sms_water/src/main/java/com/huaxu/dao/DeviceAttributeSpecsMapper.java
  14. 2 1
      sms_water/src/main/java/com/huaxu/dao/DeviceMapper.java
  15. 2 0
      sms_water/src/main/java/com/huaxu/dao/DeviceTypeMapper.java
  16. 4 0
      sms_water/src/main/java/com/huaxu/dto/DeviceDto.java
  17. 13 0
      sms_water/src/main/java/com/huaxu/dto/DeviceTypeDto.java
  18. 91 0
      sms_water/src/main/java/com/huaxu/entity/DeviceAttributeEntity.java
  19. 58 0
      sms_water/src/main/java/com/huaxu/entity/DeviceAttributeSpecsEntity.java
  20. 5 0
      sms_water/src/main/java/com/huaxu/entity/DeviceTypeEntity.java
  21. 10 0
      sms_water/src/main/java/com/huaxu/entity/SceneEntity.java
  22. 79 0
      sms_water/src/main/java/com/huaxu/service/DeviceAttributeService.java
  23. 81 0
      sms_water/src/main/java/com/huaxu/service/DeviceAttributeSpecsService.java
  24. 4 0
      sms_water/src/main/java/com/huaxu/service/DeviceService.java
  25. 4 0
      sms_water/src/main/java/com/huaxu/service/DeviceTypeService.java
  26. 12 1
      sms_water/src/main/java/com/huaxu/service/SceneService.java
  27. 12 0
      sms_water/src/main/java/com/huaxu/service/impl/DeviceServiceImpl.java
  28. 9 0
      sms_water/src/main/resources/application-dev.properties
  29. 15 0
      sms_water/src/main/resources/application-prd.properties
  30. 16 0
      sms_water/src/main/resources/application-sit.properties
  31. 6 6
      sms_water/src/main/resources/mapper/AlarmDetailMapper.xml
  32. 8 8
      sms_water/src/main/resources/mapper/AlarmSettingMapper.xml
  33. 75 0
      sms_water/src/main/resources/mapper/DeviceAttributeMapper.xml
  34. 68 0
      sms_water/src/main/resources/mapper/DeviceAttributeSpecsMapper.xml
  35. 31 2
      sms_water/src/main/resources/mapper/DeviceMapper.xml
  36. 19 0
      sms_water/src/main/resources/mapper/DeviceTypeMapper.xml

+ 13 - 0
.idea/libraries/Maven__org_springframework_amqp_spring_amqp_2_1_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.amqp:spring-amqp:2.1.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-amqp/2.1.7.RELEASE/spring-amqp-2.1.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-amqp/2.1.7.RELEASE/spring-amqp-2.1.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-amqp/2.1.7.RELEASE/spring-amqp-2.1.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 13 - 0
.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_2_1_7_RELEASE.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.springframework.amqp:spring-rabbit:2.1.7.RELEASE">
+    <CLASSES>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-rabbit/2.1.7.RELEASE/spring-rabbit-2.1.7.RELEASE.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-rabbit/2.1.7.RELEASE/spring-rabbit-2.1.7.RELEASE-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$PROJECT_DIR$/../../../Program Files/repository/org/springframework/amqp/spring-rabbit/2.1.7.RELEASE/spring-rabbit-2.1.7.RELEASE-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 5 - 0
sms_water/pom.xml

@@ -16,6 +16,11 @@
            <artifactId>hutool-all</artifactId>
            <version>5.4.5</version>
        </dependency>
+       <dependency>
+           <groupId>org.apache.httpcomponents</groupId>
+           <artifactId>httpclient</artifactId>
+           <version>4.5.6</version>
+       </dependency>
        <dependency>
            <groupId>com.huaxu</groupId>
            <artifactId>common</artifactId>

+ 6 - 1
sms_water/src/main/java/com/huaxu/async/CheckDeviceStateAsync.java

@@ -30,11 +30,16 @@ public class CheckDeviceStateAsync implements InitializingBean {
             while (true) {
                 try {
                     alarmDetailsService.checkStateAlarm();
-                    Thread.sleep(300000);
                 } catch (Exception e){
                     e.printStackTrace();
                     log.error("巡检设备状态异常:{}",e.getMessage());
                 }
+                try {
+                    Thread.sleep(100000);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                    log.error(e.getMessage());
+                }
             }
         }).start();
     }

+ 28 - 0
sms_water/src/main/java/com/huaxu/config/ApplicationValues.java

@@ -0,0 +1,28 @@
+package com.huaxu.config;
+
+import lombok.Getter;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Getter
+@Component
+public class ApplicationValues {
+
+    @Value("${http_pool.max_total}")
+    private int maxTotal;
+
+    @Value("${http_pool.default_max_per_route}")
+    private int maxPerRoute;
+
+    @Value("${http_pool.connect_timeout}")
+    private int connTimeOut;
+
+    @Value("${http_pool.connection_request_timeout}")
+    private int connReqTimeOut;
+
+    @Value("${http_pool.socket_timeout}")
+    private int socketTimeout;
+
+    @Value("${http_pool.validate_after_inactivity}")
+    private int inactivity;
+}

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

@@ -17,7 +17,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .and()
                 .authorizeRequests()
                 .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
-                       "/v2/**")
+                       "/v2/**","/devicetype/**")
                 .permitAll() //配置不需要身份认证的请求路径
                 .anyRequest().authenticated() //其他所有访问路径都需要身份认证
                 .and()

+ 66 - 0
sms_water/src/main/java/com/huaxu/config/RestTemplateConfig.java

@@ -0,0 +1,66 @@
+package com.huaxu.config;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @author 孤
+ * @version v1.0
+ * @Developers 张耀烽
+ * @serviceProvider 四叶草安全(SeClover)
+ * @description http工厂配置
+ * @date
+ */
+@Configuration
+public class RestTemplateConfig {
+
+    @Autowired
+    private ApplicationValues appValues;
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate(httpRequestFactory());
+    }
+
+    @Bean
+    public ClientHttpRequestFactory httpRequestFactory() {
+        return new HttpComponentsClientHttpRequestFactory(httpClient());
+    }
+
+    @Bean
+    public HttpClient httpClient() {
+        Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
+                .register("http", PlainConnectionSocketFactory.getSocketFactory())
+                .register("https", SSLConnectionSocketFactory.getSocketFactory())
+                .build();
+        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
+        connectionManager.setMaxTotal(appValues.getMaxTotal());
+        connectionManager.setDefaultMaxPerRoute(appValues.getMaxPerRoute());
+        connectionManager.setValidateAfterInactivity(appValues.getInactivity());
+        RequestConfig requestConfig = RequestConfig.custom()
+                //服务器返回数据(response)的时间,超过抛出read timeout
+                .setSocketTimeout(appValues.getSocketTimeout())
+                //连接上服务器(握手成功)的时间,超出抛出connect timeout
+                .setConnectTimeout(appValues.getConnTimeOut())
+                //从连接池中获取连接的超时时间,超时间未拿到可用连接,会抛出org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
+                .setConnectionRequestTimeout(appValues.getConnReqTimeOut())
+                .build();
+        return HttpClientBuilder.create()
+                .setDefaultRequestConfig(requestConfig)
+                .setConnectionManager(connectionManager)
+                .build();
+    }
+}

+ 4 - 3
sms_water/src/main/java/com/huaxu/controller/AlarmSettingController.java

@@ -38,6 +38,8 @@ public class AlarmSettingController {
     private AlarmSettingService alarmSettingService;
     @Autowired
     private SceneService sceneService;
+    @Autowired
+    private OrgInfoUtil orgInfoUtil;
     /**
      * 删除多条数据
      *
@@ -75,7 +77,7 @@ public class AlarmSettingController {
      */
     @RequestMapping(value = "insertBatch", method = RequestMethod.POST)
     @ApiOperation(value = "批量增加报警配置信息",notes = "alarmType 为参数报警或状态报警")
-    public AjaxMessage<Boolean> insertBatch(@ApiParam(value = "报警配置ids", required = true) @RequestBody List<AlarmSetting> listAlarmSetting) {
+    public AjaxMessage<Boolean> insertBatch(@ApiParam(value = "报警配置列表", required = true) @RequestBody List<AlarmSetting> listAlarmSetting) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         for (AlarmSetting alarm:listAlarmSetting) {
             alarm.setCreateBy(currentUser.getUsername());
@@ -100,7 +102,7 @@ public class AlarmSettingController {
             @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 = "报警参数id", required = false) @RequestParam(required = false) String attributeName,
+            @ApiParam(value = "报警参数", required = false) @RequestParam(required = false) String attributeName,
             @ApiParam(value = "场景id", required = false) @RequestParam(required = false) Long sceneId) {
         AlarmSettingDto alarmSettingDto=new AlarmSettingDto();
         alarmSettingDto.setId(id);
@@ -110,7 +112,6 @@ public class AlarmSettingController {
         IPage<AlarmSettingDto> iPage = new Page<>(pageNum, pageSize);
         iPage = alarmSettingService.selectPage(iPage, alarmSettingDto);
         Pagination<AlarmSettingDto> pages = new Pagination<>(iPage);
-        OrgInfoUtil orgInfoUtil = new OrgInfoUtil();
         for(AlarmSettingDto alarm : pages.getList()){
             alarm.setCompanyOrgName(orgInfoUtil.getOrgName(alarm.getCompanyOrgId()));
             alarm.setDeptOrgName(orgInfoUtil.getOrgName(alarm.getDeptOrgId()));

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

@@ -10,12 +10,15 @@ import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
 import com.huaxu.model.ResultStatus;
 import com.huaxu.service.DeviceService;
+import com.huaxu.util.OrgInfoUtil;
 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
@@ -28,6 +31,8 @@ public class DeviceController {
 
     @Autowired
     private DeviceService deviceService;
+    @Autowired
+    private OrgInfoUtil orgInfoUtil;
 
     @RequestMapping(value="get" , method = RequestMethod.GET)
     @ApiOperation(value = "查询单个设备信息")
@@ -38,9 +43,8 @@ public class DeviceController {
     @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 companyOrgId,
             @ApiParam(value = "所属部门") @RequestParam(required = false)  Integer deptOrgId,
             @ApiParam(value = "所属场景id") @RequestParam(required = false)  Integer sceneId,
             @ApiParam(value = "设备状态") @RequestParam(required = false) Integer enableState,
@@ -53,7 +57,6 @@ public class DeviceController {
         deviceDto.setDeptOrgId(deptOrgId);
         deviceDto.setSceneId(sceneId);
         deviceDto.setEnableState(enableState);
-        deviceDto.setId(id);
 
         IPage<DeviceDto> iPage = new Page<>(pageNum, pageSize);
         if(iPage.orders().size() == 0){
@@ -64,9 +67,32 @@ public class DeviceController {
         }
         iPage = deviceService.selectPage(iPage,deviceDto);
         Pagination<DeviceDto> pages = new Pagination<>(iPage);
+        for(DeviceDto device : pages.getList()){
+            device.setCompanyOrgName(orgInfoUtil.getOrgName(device.getCompanyOrgId()));
+            device.setDeptOrgName(orgInfoUtil.getOrgName(device.getDeptOrgId()));
+        }
         return new AjaxMessage<>(ResultStatus.OK, pages);
     }
 
+    @RequestMapping(value="selectList" , method = RequestMethod.GET)
+    @ApiOperation(value = "查询设备信息")
+    public AjaxMessage<List<DeviceDto>> selectList(
+            @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
+    ){
+        DeviceDto deviceDto = new DeviceDto();
+        deviceDto.setCondition(condition);
+        deviceDto.setCompanyOrgId(companyOrgId);
+        deviceDto.setDeptOrgId(deptOrgId);
+        deviceDto.setSceneId(sceneId);
+        deviceDto.setEnableState(enableState);
+
+        return new AjaxMessage<>(ResultStatus.OK, deviceService.selectList(deviceDto));
+    }
+
     @RequestMapping(value="add" , method = RequestMethod.POST)
     @ApiOperation(value = "新增设备信息")
     @LogAnnotation(module = "【设备管理】新增")

+ 57 - 0
sms_water/src/main/java/com/huaxu/controller/DeviceTypeController.java

@@ -1,9 +1,18 @@
 package com.huaxu.controller;
 
 
+import com.huaxu.dto.DeviceTypeDto;
 import com.huaxu.dto.TreeDataDto;
+import com.huaxu.entity.DeviceAttributeEntity;
+import com.huaxu.entity.DeviceAttributeSpecsEntity;
+import com.huaxu.entity.DeviceParmEntity;
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.ResultStatus;
+import com.huaxu.service.DeviceAttributeService;
+import com.huaxu.service.DeviceAttributeSpecsService;
 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.stereotype.Controller;
 import org.springframework.validation.annotation.Validated;
@@ -15,6 +24,8 @@ import java.util.Date;
 import org.springframework.web.bind.annotation.*;
 import com.huaxu.entity.DeviceTypeEntity;
 import com.huaxu.service.DeviceTypeService;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.beans.factory.annotation.Value;
 
 /**
  * 设备型号页面控制器
@@ -28,6 +39,14 @@ public class DeviceTypeController {
 
     @Autowired
     private DeviceTypeService deviceTypeService;
+    @Autowired
+    private DeviceAttributeService deviceAttributeService;
+    @Autowired
+    private DeviceAttributeSpecsService deviceAttributeSpecsService;
+    @Autowired
+    private RestTemplate restTemplate;
+    @Value("${http_pool.requesturl}")
+    private  String requestUrl;
 
     @ApiOperation(value = "查询设备类型")
     @RequestMapping(value = "/selectList", method = RequestMethod.POST)
@@ -37,4 +56,42 @@ public class DeviceTypeController {
         return treeDataDtos;
     }
 
+    @RequestMapping(value = "batchAdd", method = RequestMethod.POST)
+    @ApiOperation(value = "批量同步设备类型")
+    public AjaxMessage<Integer> batchAdd() {
+        int result = 0;
+        DeviceTypeDto deviceTypeDto = restTemplate.getForObject("http://114.135.61.188:48322/unit/profiles/list", DeviceTypeDto.class);
+        //判断是否存在,不存在则进行添加
+        for (DeviceTypeEntity item : deviceTypeDto.getData()) {
+            if (deviceTypeService.findListByName(item).size() == 0) {
+                item.setCreateBy("admin");
+                item.setDateCreate(new Date());
+                item.setStatus(1);
+                item.setUpdateBy("admin");
+                item.setDateUpdate(new Date());
+                deviceTypeService.save(item);
+                for (DeviceAttributeEntity item2 : item.getProperties()) {
+                    item2.setDeviceTypeId(item.getId());
+                    item2.setCreateBy("admin");
+                    item2.setDateCreate(new Date());
+                    item2.setStatus(1);
+                    item2.setUpdateBy("admin");
+                    item2.setDateUpdate(new Date());
+                    deviceAttributeService.save(item2);
+                    for (DeviceAttributeSpecsEntity item3 : item2.getSpecs()) {
+                        item3.setAttributeId(item2.getId());
+                        item3.setCreateBy("admin");
+                        item3.setDateCreate(new Date());
+                        item3.setStatus(1);
+                        item3.setUpdateBy("admin");
+                        item3.setDateUpdate(new Date());
+                        deviceAttributeSpecsService.save(item3);
+                    }
+                }
+            }
+        }
+
+        return new AjaxMessage<>(ResultStatus.OK, result);
+    }
+
 }

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

@@ -41,7 +41,7 @@ public class SceneController {
     private String baseDir;
 
     @ApiOperation(value = "分页查询场景")
-    @RequestMapping(value = "/selectPage", method = RequestMethod.POST)
+    @RequestMapping(value = "/selectPage", method = RequestMethod.GET)
     @ResponseBody
     public AjaxMessage<Pagination<SceneEntity>> selectPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(value = "sceneName", required = false) String sceneName) {
         IPage<SceneEntity> iPage = new Page<>(pageNum, pageSize);

+ 34 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceAttributeMapper.java

@@ -0,0 +1,34 @@
+package com.huaxu.dao;
+
+import com.huaxu.entity.DeviceAttributeEntity;
+import java.io.Serializable;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+/**
+ *
+ * sms_device_attributeDAO接口
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Mapper
+public interface DeviceAttributeMapper extends BaseMapper<DeviceAttributeEntity> {
+
+	/**
+     * 自定义分页查询
+     * @param  page 
+     * @param  deviceAttributeEntity 实体类
+     */
+     Page<DeviceAttributeEntity> findPage(IPage<DeviceAttributeEntity> page,
+                                       @Param("deviceAttribute") DeviceAttributeEntity deviceAttributeEntity);
+
+     DeviceAttributeEntity findDeviceAttributeById(Serializable id);
+
+
+     List<DeviceAttributeEntity> findList(DeviceAttributeEntity deviceAttributeEntity);
+
+     /**删除相关方法  使用mybatis-plus集成的 **/
+}

+ 34 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceAttributeSpecsMapper.java

@@ -0,0 +1,34 @@
+package com.huaxu.dao;
+
+import com.huaxu.entity.DeviceAttributeSpecsEntity;
+import java.io.Serializable;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+/**
+ *
+ * sms_device_attribute_specsDAO接口
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Mapper
+public interface DeviceAttributeSpecsMapper extends BaseMapper<DeviceAttributeSpecsEntity> {
+
+	/**
+     * 自定义分页查询
+     * @param  page 
+     * @param  deviceAttributeSpecsEntity 实体类
+     */
+     Page<DeviceAttributeSpecsEntity> findPage(IPage<DeviceAttributeSpecsEntity> page,
+                                       @Param("deviceAttributeSpecs") DeviceAttributeSpecsEntity deviceAttributeSpecsEntity);
+
+     DeviceAttributeSpecsEntity findDeviceAttributeSpecsById(Serializable id);
+
+
+     List<DeviceAttributeSpecsEntity> findList(DeviceAttributeSpecsEntity deviceAttributeSpecsEntity);
+
+     /**删除相关方法  使用mybatis-plus集成的 **/
+}

+ 2 - 1
sms_water/src/main/java/com/huaxu/dao/DeviceMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.DeviceDto;
 import com.huaxu.entity.DeviceEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -50,7 +51,7 @@ public interface DeviceMapper {
      * 查询设备信息
      * @return
      */
-    List<DeviceEntity> selectList(DeviceDto deviceDto);
+    List<DeviceDto> selectList( @Param("deviceDto") DeviceDto deviceDto);
 
     /**
      * 分页查询

+ 2 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceTypeMapper.java

@@ -29,5 +29,7 @@ public interface DeviceTypeMapper extends BaseMapper<DeviceTypeEntity> {
 
      List<DeviceTypeEntity> findList(DeviceTypeEntity deviceTypeEntity);
 
+    List<DeviceTypeEntity> findListByName(DeviceTypeEntity deviceTypeEntity);
+
      /**删除相关方法  使用mybatis-plus集成的 **/
 }

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

@@ -34,6 +34,10 @@ public class DeviceDto extends DeviceEntity {
     private String deviceType;
     @ApiModelProperty("设备型号")
     private String deviceMode;
+    @ApiModelProperty(value = "所属公司")
+    private String companyOrgName;
+    @ApiModelProperty(value = "所属部门")
+    private String deptOrgName;
 
     @ApiModelProperty(value ="权限",hidden = true)
     @JsonIgnore

+ 13 - 0
sms_water/src/main/java/com/huaxu/dto/DeviceTypeDto.java

@@ -0,0 +1,13 @@
+package com.huaxu.dto;
+
+import com.huaxu.entity.DeviceTypeEntity;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DeviceTypeDto {
+    private int status;
+    private String msg;
+    private List<DeviceTypeEntity> data;
+}

+ 91 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceAttributeEntity.java

@@ -0,0 +1,91 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * sms_device_attribute
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Data
+@TableName("sms_device_attribute")
+public class DeviceAttributeEntity  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 属性名称
+     */
+    private String name;
+
+    /**
+     * 属性标识符
+     */
+    private String identifier;
+
+    /**
+     * 属性类型
+     */
+    private String dataType;
+
+    /**
+     * 属性描述
+     */
+    private String description;
+
+    /**
+     * 属性单位
+     */
+    private String unit;
+
+    /**
+     * 设备型号
+     */
+    private Long deviceTypeId;
+
+    /**
+     * 数据删除标记
+     */
+    @TableLogic
+    @ApiModelProperty(value = "数据删除标记")
+    private Integer status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "2020-12-12 12:12:12")
+    @ApiModelProperty(value = "创建时间", example = "2020-12-12 12:12:12")
+    private Date dateCreate;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /**
+     * 更新者
+     */
+    @ApiModelProperty(value = "更新者")
+    private String updateBy;
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "2020-12-12 12:12:12")
+    @ApiModelProperty(value = "更新时间", example = "2020-12-12 12:12:12")
+    private Date dateUpdate;
+
+    @ApiModelProperty(value = "设备属性规则")
+    @TableField(exist = false)
+    private List<DeviceAttributeSpecsEntity> specs;
+}

+ 58 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceAttributeSpecsEntity.java

@@ -0,0 +1,58 @@
+package com.huaxu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * sms_device_attribute_specs
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Data
+@TableName("sms_device_attribute_specs")
+public class DeviceAttributeSpecsEntity  implements Serializable{
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */ 
+	@TableId(type = IdType.AUTO)
+    private Long id;
+
+    /** 规格名称 */
+    private String specsName;
+
+    /** 规格值 */
+    private String specsValue;
+
+    /** 设备属性 */
+    private Long attributeId;
+
+    /** 数据删除标记 */
+    @TableLogic
+    @ApiModelProperty(value = "数据删除标记")
+    private Integer status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "2020-12-12 12:12:12")
+    @ApiModelProperty(value = "创建时间",example = "2020-12-12 12:12:12")
+    private Date dateCreate;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /** 更新者 */
+    @ApiModelProperty(value = "更新者")
+    private String updateBy;
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "2020-12-12 12:12:12")
+    @ApiModelProperty(value = "更新时间",example = "2020-12-12 12:12:12")
+    private Date dateUpdate;
+
+}

+ 5 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceTypeEntity.java

@@ -10,6 +10,7 @@ import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * sms_device_type
@@ -62,4 +63,8 @@ public class DeviceTypeEntity implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "2020-12-12 12:12:12")
     @ApiModelProperty(value = "更新时间",example = "2020-12-12 12:12:12")
     private Date dateUpdate;
+
+    @ApiModelProperty(value = "设备属性")
+    @TableField(exist = false)
+    private List<DeviceAttributeEntity> properties;
 }

+ 10 - 0
sms_water/src/main/java/com/huaxu/entity/SceneEntity.java

@@ -54,6 +54,16 @@ public class SceneEntity implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private Long deptOrgId;
 
+    /** 所属公司 */
+    @ApiModelProperty(value = "所属公司")
+    @TableField(exist = false)
+    private String companyOrgName;
+
+    /** 所属部门 */
+    @ApiModelProperty(value = "所属部门")
+    @TableField(exist = false)
+    private String deptOrgName;
+
     /** 场景类型 */
     @ApiModelProperty(value = "场景类型")
     private Long sceneTypeId;

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

@@ -0,0 +1,79 @@
+package com.huaxu.service;
+
+
+import com.huaxu.dao.DeviceAttributeMapper;
+import com.huaxu.entity.DeviceAttributeEntity;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+import javax.annotation.Resource;
+
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * 设备属性Service接口
+ *
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Service
+public class DeviceAttributeService extends ServiceImpl<DeviceAttributeMapper, DeviceAttributeEntity> {
+
+    @Resource
+    private DeviceAttributeMapper deviceAttributeMapper;
+
+    /**
+     * 查列表
+     */
+    public List<DeviceAttributeEntity> findList(DeviceAttributeEntity deviceAttributeEntity) {
+        return deviceAttributeMapper.findList(deviceAttributeEntity);
+    }
+
+    /**
+     * 批量删除
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public boolean delDeviceAttributeByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+    /**
+     * 单个删除
+     */
+    public boolean delDeviceAttributeById(Long id) {
+        return this.removeById(id);
+    }
+
+    /**
+     * 保存
+     */
+    public boolean addDeviceAttribute(DeviceAttributeEntity deviceAttribute) {
+        if (this.save(deviceAttribute)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 修改根居ID
+     */
+    public boolean updateDeviceAttributeById(DeviceAttributeEntity deviceAttribute) {
+        if (this.updateById(deviceAttribute)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 根居ID获取对象
+     */
+    public DeviceAttributeEntity findDeviceAttributeById(Long id) {
+        return deviceAttributeMapper.findDeviceAttributeById(id);
+    }
+}

+ 81 - 0
sms_water/src/main/java/com/huaxu/service/DeviceAttributeSpecsService.java

@@ -0,0 +1,81 @@
+package com.huaxu.service;
+
+
+import com.huaxu.dao.DeviceAttributeSpecsMapper;
+import com.huaxu.entity.DeviceAttributeSpecsEntity;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+import javax.annotation.Resource;
+
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * 设备属性规则Service接口
+ *
+ * @author: WYY
+ * @date 2020-11-20 20:29
+ */
+@Service
+public class DeviceAttributeSpecsService extends ServiceImpl<DeviceAttributeSpecsMapper, DeviceAttributeSpecsEntity> {
+
+    @Resource
+    private DeviceAttributeSpecsMapper deviceAttributeSpecsMapper;
+
+
+    /**
+     * 查列表
+     */
+    public List<DeviceAttributeSpecsEntity> findList(DeviceAttributeSpecsEntity deviceAttributeSpecsEntity) {
+        return deviceAttributeSpecsMapper.findList(deviceAttributeSpecsEntity);
+    }
+
+    /**
+     * 批量删除
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public boolean delDeviceAttributeSpecsByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+
+    }
+
+    /**
+     * 单个删除
+     */
+    public boolean delDeviceAttributeSpecsById(Long id) {
+        return this.removeById(id);
+    }
+
+    /**
+     * 保存
+     */
+    public boolean addDeviceAttributeSpecs(DeviceAttributeSpecsEntity deviceAttributeSpecs) {
+        if (this.save(deviceAttributeSpecs)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 修改根居ID
+     */
+    public boolean updateDeviceAttributeSpecsById(DeviceAttributeSpecsEntity deviceAttributeSpecs) {
+        if (this.updateById(deviceAttributeSpecs)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 根居ID获取对象
+     */
+    public DeviceAttributeSpecsEntity findDeviceAttributeSpecsById(Long id) {
+        return deviceAttributeSpecsMapper.findDeviceAttributeSpecsById(id);
+    }
+}

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dto.DeviceDto;
 import com.huaxu.entity.DeviceEntity;
 
+import java.util.List;
+
 /**
  * @description
  * @auto wangli
@@ -39,4 +41,6 @@ public interface DeviceService {
      * @return
      */
     IPage<DeviceDto> selectPage(IPage<DeviceDto> page, DeviceDto deviceDto);
+
+    List<DeviceDto> selectList(DeviceDto deviceDto);
 }

+ 4 - 0
sms_water/src/main/java/com/huaxu/service/DeviceTypeService.java

@@ -31,6 +31,10 @@ public class DeviceTypeService extends ServiceImpl<DeviceTypeMapper, DeviceTypeE
     @Resource
     private DeviceTypeMapper deviceTypeMapper;
 
+    public List<DeviceTypeEntity> findListByName(DeviceTypeEntity deviceTypeEntity)
+    {
+        return deviceTypeMapper.findListByName(deviceTypeEntity);
+    }
     /**
      * 查列表
      */

+ 12 - 1
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -6,17 +6,20 @@ import com.huaxu.common.Reflections;
 import com.huaxu.common.StringUtils;
 import com.huaxu.dao.SceneImageMapper;
 import com.huaxu.dao.SceneMapper;
+import com.huaxu.dto.DeviceDto;
 import com.huaxu.entity.SceneEntity;
 import com.huaxu.entity.SceneImageEntity;
 import com.huaxu.entity.SceneTypeEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ResultStatus;
+import com.huaxu.util.OrgInfoUtil;
 import com.huaxu.util.Snowflake;
 import com.huaxu.util.UserUtil;
 import javafx.scene.Scene;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -46,6 +49,8 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     private SceneMapper sceneMapper;
     @Resource
     private SceneImageService sceneImageService;
+    @Autowired
+    private OrgInfoUtil orgInfoUtil;
 
     /**
      * 自定义分页查询,含关联实体对像
@@ -62,7 +67,13 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
         //查询子节点的信息
         List<SceneEntity> sceneEntities = newArrayList();
         for (SceneEntity item : sceneEntityPage.getRecords()) {
-             sceneEntities.addAll(findByParentLike(item.getId()));
+            sceneEntities.addAll(findByParentLike(item.getId()));
+        }
+        for (SceneEntity item : sceneEntities) {
+            if (item.getCompanyOrgId() != null)
+                item.setCompanyOrgName(orgInfoUtil.getOrgName(item.getCompanyOrgId().intValue()));
+            if (item.getDeptOrgId() != null)
+                item.setDeptOrgName(orgInfoUtil.getOrgName(item.getDeptOrgId().intValue()));
         }
         List<SceneEntity> sceneTree = getSceneTree(sceneEntities, Long.valueOf(0), 1);
         sceneEntityPage.setRecords(sceneTree);

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

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @description
@@ -65,4 +66,15 @@ public class DeviceServiceImpl implements DeviceService {
 
         return deviceMapper.selectPage(page,deviceDto);
     }
+
+    @Override
+    public List<DeviceDto> selectList(DeviceDto deviceDto){
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        deviceDto.setTenantId(loginUser.getTenantId());
+        deviceDto.setProgramItems(loginUser.getProgramItemList());
+        deviceDto.setUserType(loginUser.getType());
+        //1是公司,2是公司及以下,3部门,4部门及以下,5自定义
+        deviceDto.setPermissonType(loginUser.getPermissonType());
+        return deviceMapper.selectList(deviceDto);
+    }
 }

+ 9 - 0
sms_water/src/main/resources/application-dev.properties

@@ -74,5 +74,14 @@ spring.rabbitmq.port=5672
 spring.rabbitmq.username=guest
 spring.rabbitmq.password=guest
 spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+#http
+http_pool.max_total=200
+http_pool.default_max_per_route=100
+http_pool.connect_timeout=5000
+http_pool.connection_request_timeout=1000
+http_pool.socket_timeout=65000
+http_pool.validate_after_inactivity=2000
+#devicetype
+http_pool.requesturl=http://114.135.61.188:48322/unit/profiles/list
 
 

+ 15 - 0
sms_water/src/main/resources/application-prd.properties

@@ -67,3 +67,18 @@ spring.kafka.consumer.properties.spring.json.trusted.packages=*
 spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
 SMS.sys_config_path=/UMIS_SMS_IMAGES/
 SMS.sys_excel_path=/UMIS_SMS_EXCEL/
+##rabbitmq
+spring.rabbitmq.host=127.0.0.1
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest
+spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+#http
+http_pool.max_total=200
+http_pool.default_max_per_route=100
+http_pool.connect_timeout=5000
+http_pool.connection_request_timeout=1000
+http_pool.socket_timeout=65000
+http_pool.validate_after_inactivity=2000
+#devicetype
+http_pool.requesturl=http://114.135.61.188:48322/unit/profiles/list

+ 16 - 0
sms_water/src/main/resources/application-sit.properties

@@ -68,6 +68,22 @@ spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
 SMS.sys_config_path=/UMIS_SMS_IMAGES/
 SMS.sys_excel_path=/UMIS_SMS_EXCEL/
 
+##rabbitmq
+spring.rabbitmq.host=127.0.0.1
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest
+spring.rabbitmq.listener.simple.acknowledge-mode = NONE
+#http
+http_pool.max_total=200
+http_pool.default_max_per_route=100
+http_pool.connect_timeout=5000
+http_pool.connection_request_timeout=1000
+http_pool.socket_timeout=65000
+http_pool.validate_after_inactivity=2000
+#devicetype
+http_pool.requesturl=http://114.135.61.188:48322/unit/profiles/list
+
 
 
 

+ 6 - 6
sms_water/src/main/resources/mapper/AlarmDetailMapper.xml

@@ -119,7 +119,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
@@ -262,7 +262,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
@@ -317,7 +317,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
@@ -372,7 +372,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
@@ -427,7 +427,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
@@ -482,7 +482,7 @@
             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)
+            and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
         </if>
         <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and  alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
             <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">

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

@@ -31,10 +31,10 @@
 
     <!-- 外联表  -->
     <sql id="leftJoins">
-        left join sms_device t2 on t1.device_id=t2.id
-        left join sms_scene t3 on t2.scene_id=t3.id
-        left join sms_device_attribute t4 on t1.attribute_id=t4.id
-        left join sms_device_type t5 on t2.device_type_id=t5.id
+        left join sms_device t2 on t1.device_id=t2.id and t2.status =1
+        left join sms_scene t3 on t2.scene_id=t3.id and t3.status =1
+        left join sms_device_attribute t4 on t1.attribute_id=t4.id and t4.status =1
+        left join sms_device_type t5 on t2.device_type_id=t5.id and t5.status =1
      </sql>
 
     <select id="findPage" resultMap="alarmSettingMap">
@@ -59,16 +59,16 @@
                     #{item}
                 </foreach>
             </if>
-            and t1.STATUS =1
+            and t1.status =1
         </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_type_id
-        where t1.id=#{deviceId} and t3.status=1
+        inner join sms_device_type t2 on t1.device_type_id=t2.id and t2.status =1
+        inner join sms_device_attribute t3 on t2.id=t3.device_type_id and t3.status =1
+        where t1.id=#{deviceId} and t1.status=1
     </select>
 
 </mapper>

+ 75 - 0
sms_water/src/main/resources/mapper/DeviceAttributeMapper.xml

@@ -0,0 +1,75 @@
+<?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.DeviceAttributeMapper">
+
+
+    <resultMap type="DeviceAttributeEntity" id="DeviceAttributeResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="identifier" column="identifier"/>
+        <result property="dataType" column="data_type"/>
+        <result property="description" column="description"/>
+        <result property="unit" column="unit"/>
+        <result property="deviceModeId" column="device_mode_id"/>
+        <result property="status" column="status"/>
+        <result property="dateCreate" column="date_create"/>
+        <result property="createBy" column="create_by"/>
+        <result property="dateUpdate" column="date_update"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+
+    <!--  实体栏位  -->
+    <sql id="deviceAttributeColumns">
+         a.id as "id" ,
+         a.name as "name" ,
+         a.identifier as "identifier" ,
+         a.data_type as "dataType" ,
+         a.description as "description" ,
+         a.unit as "unit" ,
+         a.device_mode_id as "deviceModeId" ,
+         a.status as "status" ,
+         a.date_create as "dateCreate" ,
+         a.create_by as "createBy" ,
+         a.date_update as "dateUpdate" ,
+         a.update_by as "updateBy" 
+     </sql>
+
+
+    <!--  根据主键获取实体   -->
+    <select id="findDeviceAttributeById" resultType="com.huaxu.entity.DeviceAttributeEntity">
+        SELECT
+        <include refid="deviceAttributeColumns"/>
+        FROM sms_device_attribute a
+
+        WHERE a.id = #{id}
+    </select>
+
+    <!--  根据获取实体List   -->
+    <select id="findList" resultType="com.huaxu.entity.DeviceAttributeEntity">
+        SELECT
+        <include refid="deviceAttributeColumns"/>
+        FROM sms_device_attribute a
+
+        <where>
+
+            <if test="name != null  and name != ''">
+                and a.name LIKE concat('%',#{name},'%')
+            </if>
+        </where>
+    </select>
+
+    <!--  根据获取实体 page   -->
+    <select id="findPage" resultType="com.huaxu.entity.DeviceAttributeEntity">
+        SELECT
+        <include refid="deviceAttributeColumns"/>
+        FROM sms_device_attribute a
+
+        <where>
+            <if test="deviceAttribute.name != null  and deviceAttribute.name != ''">
+                and a.name LIKE concat('%',#{deviceAttribute.name},'%')
+            </if>
+        </where>
+    </select>
+</mapper>

+ 68 - 0
sms_water/src/main/resources/mapper/DeviceAttributeSpecsMapper.xml

@@ -0,0 +1,68 @@
+<?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.DeviceAttributeSpecsMapper">
+
+
+    <resultMap type="DeviceAttributeSpecsEntity" id="DeviceAttributeSpecsResult">
+        <result property="id" column="id"/>
+        <result property="specsName" column="specs_name"/>
+        <result property="specsValue" column="specs_value"/>
+        <result property="attributeId" column="attribute_id"/>
+        <result property="status" column="status"/>
+        <result property="dateCreate" column="date_create"/>
+        <result property="createBy" column="create_by"/>
+        <result property="dateUpdate" column="date_update"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+
+    <!--  实体栏位  -->
+    <sql id="deviceAttributeSpecsColumns">
+         a.id as "id" ,
+         a.specs_name as "specsName" ,
+         a.specs_value as "specsValue" ,
+         a.attribute_id as "attributeId" ,
+         a.status as "status" ,
+         a.date_create as "dateCreate" ,
+         a.create_by as "createBy" ,
+         a.date_update as "dateUpdate" ,
+         a.update_by as "updateBy" 
+     </sql>
+
+
+    <!--  根据主键获取实体   -->
+    <select id="findDeviceAttributeSpecsById" resultType="com.huaxu.entity.DeviceAttributeSpecsEntity">
+        SELECT
+        <include refid="deviceAttributeSpecsColumns"/>
+        FROM sms_device_attribute_specs a
+        WHERE a.id = #{id}
+    </select>
+
+    <!--  根据获取实体List   -->
+    <select id="findList" resultType="com.huaxu.entity.DeviceAttributeSpecsEntity">
+        SELECT
+        <include refid="deviceAttributeSpecsColumns"/>
+        FROM sms_device_attribute_specs a
+
+        <where>
+
+            <if test="specsName != null  and specsName != ''">
+                and a.specs_name LIKE concat('%',#{specsName},'%')
+            </if>
+        </where>
+    </select>
+
+    <!--  根据获取实体 page   -->
+    <select id="findPage" resultType="com.huaxu.entity.DeviceAttributeSpecsEntity">
+        SELECT
+        <include refid="deviceAttributeSpecsColumns"/>
+        FROM sms_device_attribute_specs a
+
+        <where>
+            <if test="deviceAttributeSpecs.specsName != null  and deviceAttributeSpecs.specsName != ''">
+                and a.specs_name LIKE concat('%',#{deviceAttributeSpecs.specsName},'%')
+            </if>
+        </where>
+    </select>
+</mapper>

+ 31 - 2
sms_water/src/main/resources/mapper/DeviceMapper.xml

@@ -51,8 +51,8 @@
         from sms_device d
         <include refid="deviceJoins"/>
         where d.status = 1
-        <if test="deviceDto.id != null ">
-            and d.ID = #{deviceDto.id}
+        <if test="deviceDto.tenantId != null and deviceDto.tenantId != '' ">
+            and d.tenant_id = #{deviceDto.tenantId}
         </if>
         <if test="deviceDto.condition != null and deviceDto.condition != ''">
             and (device_code like concat('%', #{deviceDto.condition},'%') or device_name like concat('%', #{deviceDto.condition},'%'))
@@ -72,6 +72,35 @@
         <if test="deviceDto.sceneName != null and deviceDto.sceneName != ''">
             and s.SCENE_NAME like concat('%', #{sceneName},'%')
         </if>
+
+        <if test="deviceDto.userType!=null and deviceDto.userType!=-999 and deviceDto.userType!=-9999 and  deviceDto.programItems != null and deviceDto.programItems.size() > 0">
+            <if test="deviceDto.permissonType == 5 or deviceDto.permissonType == 2">
+                and ( d.DEPT_ORG_ID in
+                <foreach collection="deviceDto.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                or
+                d.COMPANY_ORG_ID in
+                <foreach collection="deviceDto.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                )
+            </if>
+            <if test="deviceDto.permissonType == 4 or deviceDto.permissonType == 3">
+                and d.DEPT_ORG_ID in
+                <foreach collection="deviceDto.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+            </if>
+            <if test="deviceDto.permissonType == 1">
+                and d.COMPANY_ORG_ID in
+                <foreach collection="deviceDto.programItems" item="item" open="(" close=")" separator=",">
+                    #{item.orgId}
+                </foreach>
+                and (d.DEPT_ORG_ID is null or d.DEPT_ORG_ID =0)
+            </if>
+        </if>
+
     </select>
 
     <!-- 新增所有列 -->

+ 19 - 0
sms_water/src/main/resources/mapper/DeviceTypeMapper.xml

@@ -40,6 +40,25 @@
         WHERE a.id = #{id}
     </select>
 
+    <!--  根据获取实体List   -->
+    <select id="findListByName" resultType="com.huaxu.entity.DeviceTypeEntity">
+        SELECT
+        <include refid="deviceTypeColumns"/>
+        FROM sms_device_type a
+        <where>
+            <if test="manufacturerName != null  and manufacturerName != ''">
+                and a.manufacturer_name = #{manufacturerName}
+            </if>
+            <if test="deviceType != null  and deviceType != ''">
+                and a.device_type = #{deviceType}
+            </if>
+            <if test="deviceMode != null  and deviceMode != ''">
+                and a.device_mode = #{deviceMode}
+            </if>
+        </where>
+    </select>
+
+
     <!--  根据获取实体List   -->
     <select id="findList" resultType="com.huaxu.entity.DeviceTypeEntity">
         SELECT