Browse Source

Merge remote-tracking branch 'origin/master'

yuejiaying 4 years ago
parent
commit
48ee630a91
26 changed files with 503 additions and 111 deletions
  1. 13 27
      sms_water/src/main/java/com/huaxu/controller/DeviceController.java
  2. 18 3
      sms_water/src/main/java/com/huaxu/controller/DeviceParmController.java
  3. 2 2
      sms_water/src/main/java/com/huaxu/controller/MonitorInfoController.java
  4. 11 0
      sms_water/src/main/java/com/huaxu/controller/SceneController.java
  5. 1 0
      sms_water/src/main/java/com/huaxu/dao/DeviceMapper.java
  6. 7 2
      sms_water/src/main/java/com/huaxu/dao/DeviceParmMapper.java
  7. 24 0
      sms_water/src/main/java/com/huaxu/dao/DeviceSceneMapper.java
  8. 33 0
      sms_water/src/main/java/com/huaxu/dto/DeviceParmInfo.java
  9. 3 0
      sms_water/src/main/java/com/huaxu/entity/DeviceEntity.java
  10. 9 1
      sms_water/src/main/java/com/huaxu/entity/DeviceParmEntity.java
  11. 71 0
      sms_water/src/main/java/com/huaxu/entity/DeviceSceneEntity.java
  12. 1 0
      sms_water/src/main/java/com/huaxu/entity/SceneEntity.java
  13. 7 2
      sms_water/src/main/java/com/huaxu/service/DeviceParmService.java
  14. 79 0
      sms_water/src/main/java/com/huaxu/service/DeviceSceneService.java
  15. 1 0
      sms_water/src/main/java/com/huaxu/service/DeviceService.java
  16. 7 0
      sms_water/src/main/java/com/huaxu/service/SceneService.java
  17. 88 9
      sms_water/src/main/java/com/huaxu/service/impl/DeviceParmServiceImpl.java
  18. 1 0
      sms_water/src/main/java/com/huaxu/service/impl/DeviceServiceImpl.java
  19. 6 6
      sms_water/src/main/resources/mapper/DayReportMapper.xml
  20. 10 31
      sms_water/src/main/resources/mapper/DeviceMapper.xml
  21. 37 8
      sms_water/src/main/resources/mapper/DeviceParmMapper.xml
  22. 55 0
      sms_water/src/main/resources/mapper/DeviceSceneMapper.xml
  23. 6 7
      sms_water/src/main/resources/mapper/MonitorInfoMapper.xml
  24. 6 6
      sms_water/src/main/resources/mapper/MonthReportMapper.xml
  25. 1 1
      sms_water/src/main/resources/mapper/SceneMapper.xml
  26. 6 6
      sms_water/src/main/resources/mapper/YearReportMapper.xml

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

@@ -5,6 +5,7 @@ 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.entity.SceneEntity;
 import com.huaxu.logAdvice.LogAnnotation;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
@@ -52,7 +53,6 @@ public class DeviceController {
             @ApiParam(value = "所属公司") @RequestParam(required = false)  Integer companyOrgId,
             @ApiParam(value = "所属部门") @RequestParam(required = false)  Integer deptOrgId,
             @ApiParam(value = "所属场景id") @RequestParam(required = false)  Long sceneId,
-            @ApiParam(value = "场景查询范围:1 不查询子级;0 查询子级",  defaultValue = "0") @RequestParam(required = false,defaultValue = "0")  Integer searchType,
             @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
@@ -61,7 +61,7 @@ public class DeviceController {
         deviceDto.setCondition(condition);
         deviceDto.setCompanyOrgId(companyOrgId);
         deviceDto.setDeptOrgId(deptOrgId);
-
+        deviceDto.setSceneId(sceneId.intValue());
         deviceDto.setEnableState(enableState);
 
         IPage<DeviceDto> iPage = new Page<>(pageNum, pageSize);
@@ -71,18 +71,6 @@ public class DeviceController {
             orderItem.setColumn("d.date_create");
             iPage.orders().add(orderItem);
         }
-//        if(sceneId != null && sceneId != 0) {
-//            if(searchType != null && searchType ==1){
-//                List<Long> list = new ArrayList<>();
-//                list.add(sceneId);
-//                deviceDto.setSceneIds(list);
-//            }else{
-//                deviceDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
-//            }
-//            if(deviceDto.getSceneIds() == null || deviceDto.getSceneIds().size() == 0){
-//                return new AjaxMessage<>(ResultStatus.OK, new Pagination<>(iPage));
-//            }
-//        }
         iPage = deviceService.selectPage(iPage,deviceDto);
 
         Pagination<DeviceDto> pages = new Pagination<>(iPage);
@@ -107,19 +95,8 @@ public class DeviceController {
         deviceDto.setCondition(condition);
         deviceDto.setCompanyOrgId(companyOrgId);
         deviceDto.setDeptOrgId(deptOrgId);
+        deviceDto.setSceneId(sceneId.intValue());
         deviceDto.setEnableState(enableState);
-//        if(sceneId != null && sceneId != 0) {
-//            if(searchType != null && searchType ==1){
-//                List<Long> list = new ArrayList<>();
-//                list.add(sceneId);
-//                deviceDto.setSceneIds(list);
-//            }else{
-//                deviceDto.setSceneIds(sceneService.findByParentIdsLike(sceneId.longValue()));
-//            }
-//            if(deviceDto.getSceneIds() == null || deviceDto.getSceneIds().size() == 0){
-//                return new AjaxMessage<>(ResultStatus.OK, new ArrayList<>());
-//            }
-//        }
         return new AjaxMessage<>(ResultStatus.OK, deviceService.selectList(deviceDto));
     }
     @RequestMapping(value="selectListByScene" , method = RequestMethod.GET)
@@ -136,7 +113,16 @@ public class DeviceController {
         deviceDto.setDeptOrgId(deptOrgId);
         deviceDto.setEnableState(1);
         deviceDto.setSceneId(sceneId.intValue());
-        return new AjaxMessage<>(ResultStatus.OK, deviceService.selectListByScene(deviceDto));
+        List<DeviceDto> deviceDtos = new ArrayList<>();
+        deviceDtos = deviceService.selectListByScene(deviceDto);
+        //按场景ID,查询一级场景ID
+        SceneEntity sceneEntity = sceneService.findParentSceneById(sceneId);
+        for(DeviceDto item: deviceDtos)
+        {
+            item.setSceneId(sceneId.intValue());
+            item.setParentSceneId(sceneEntity.getParentSceneId().intValue());
+        }
+        return new AjaxMessage<>(ResultStatus.OK, deviceDtos);
     }
 
     @RequestMapping(value="add" , method = RequestMethod.POST)

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

@@ -3,6 +3,7 @@ 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.DeviceParmInfo;
 import com.huaxu.entity.DeviceParmEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.Pagination;
@@ -35,17 +36,31 @@ public class DeviceParmController {
         return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectById(id));
     }
 
-    @RequestMapping(value="getByDeviceId" , method = RequestMethod.GET)
+    @RequestMapping(value="getBySceneDeviceId" , method = RequestMethod.GET)
     @ApiOperation(value = "查询单个设备参数信息(参数设置页面)")
-    public AjaxMessage<List<DeviceParmEntity>> getByDeviceId(@ApiParam(value = "设备id") @RequestParam Integer id){
-        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectByDeviceId(id));
+    public AjaxMessage<List<DeviceParmEntity>> getBySceneDeviceId(@ApiParam(value = "场景id",required = true) @RequestParam Integer sceneId,@ApiParam(value = "设备id",required = true) @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectByDeviceId(sceneId,id));
     }
+
     @RequestMapping(value="batchEdit" , method = RequestMethod.POST)
     @ApiOperation(value = "批量保存设备参数信息(参数设置页面)")
     public AjaxMessage<Integer> batchEdit( @ApiParam(value = "设备参数信息") @RequestBody List<DeviceParmEntity> deviceParmEntities){
         deviceParmService.saveOrUpdateBatch(deviceParmEntities);
         return new AjaxMessage<>(ResultStatus.OK,1 );
     }
+    @RequestMapping(value="getBySceneAndDeviceId" , method = RequestMethod.GET)
+    @ApiOperation(value = "查询单个设备参数信息(场景参数绑定页面)")
+    public AjaxMessage<List<DeviceParmInfo>> getBySceneAndDeviceId(@ApiParam(value = "一级场景id",required = true) @RequestParam Integer parentSceneId,@ApiParam(value = "场景id",required = true) @RequestParam Integer sceneId,@ApiParam(value = "设备id",required = true) @RequestParam Integer deviceId){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectBySceneAndDeviceId(parentSceneId,sceneId,deviceId));
+    }
+    @RequestMapping(value="batchSaveEdit" , method = RequestMethod.POST)
+    @ApiOperation(value = "批量保存设备参数信息(场景参数绑定页面)")
+    public AjaxMessage<Integer> batchSaveEdit(
+            @RequestParam(value = "场景ID") Long sceneId, @RequestParam(value = "设备ID") Long deviceId,
+            @ApiParam(value = "设备参数信息") @RequestBody List<DeviceParmInfo> deviceParmInfos){
+        deviceParmService.batchSaveEdit(sceneId,deviceId,deviceParmInfos);
+        return new AjaxMessage<>(ResultStatus.OK,1 );
+    }
 
     @RequestMapping(value="selectPage" , method = RequestMethod.GET)
     @ApiOperation(value = "分页查询设备参数信息")

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

@@ -174,8 +174,8 @@ public class MonitorInfoController {
 
     @RequestMapping(value="getDeviceParmByDeviceId" , method = RequestMethod.GET)
     @ApiOperation(value = "查询单个设备参数信息(标签设置)")
-    public AjaxMessage<List<DeviceParmEntity>> getByDeviceId(@ApiParam(value = "设备id") @RequestParam Integer id){
-        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectByDeviceIdForGis(id));
+    public AjaxMessage<List<DeviceParmEntity>> getByDeviceId(@ApiParam(value = "设备id",required = true) @RequestParam Integer sceneId,@ApiParam(value = "设备id",required = true) @RequestParam Integer id){
+        return new AjaxMessage<>(ResultStatus.OK, deviceParmService.selectByDeviceIdForGis(sceneId,id));
     }
     /**
      * 新增

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huaxu.common.FileUploadUtil;
 import com.huaxu.dto.DeviceDto;
+import com.huaxu.entity.DeviceParmEntity;
+import com.huaxu.entity.DeviceSceneEntity;
 import com.huaxu.entity.SceneTypeEntity;
 import com.huaxu.model.AjaxMessage;
 import com.huaxu.model.LoginUser;
@@ -80,6 +82,8 @@ public class SceneController {
         }
     }
 
+
+
     /**
      * 新增
      */
@@ -178,4 +182,11 @@ public class SceneController {
         List<SceneEntity> sceneEntities = sceneService.findByParentId(id);
         return new AjaxMessage<>(ResultStatus.OK, sceneEntities);
     }
+
+    @RequestMapping(value="batchSave" , method = RequestMethod.POST)
+    @ApiOperation(value = "批量绑定设备及参数(绑定设备)")
+    public AjaxMessage<Integer> batchEdit( @ApiParam(value = "设备信息") @RequestBody List<DeviceSceneEntity> deviceScenes){
+        sceneService.saveUpdateBatch(deviceScenes);
+        return new AjaxMessage<>(ResultStatus.OK,1 );
+    }
 }

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

@@ -66,4 +66,5 @@ public interface DeviceMapper {
     IPage<DeviceDto> selectPage(IPage<DeviceDto> page, DeviceDto deviceDto);
 
     List<DeviceDto> selectListByScene( @Param("deviceDto") DeviceDto deviceDto);
+
 }

+ 7 - 2
sms_water/src/main/java/com/huaxu/dao/DeviceParmMapper.java

@@ -2,6 +2,7 @@ package com.huaxu.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.DeviceParmInfo;
 import com.huaxu.dto.ReportAttributeDto;
 import com.huaxu.dto.ReportDto;
 import com.huaxu.entity.DeviceParmEntity;
@@ -68,9 +69,13 @@ public interface DeviceParmMapper  {
      */
     IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity);
 
-    List<DeviceParmEntity> selectByDeviceId(Integer id);
+    List<DeviceParmEntity> selectByDeviceId(@Param("sceneId")Integer sceneId,@Param("id")Integer id);
 
-    List<DeviceParmEntity> selectByDeviceIdForGis(Integer id);
+    List<DeviceParmEntity> selectByDeviceIdForGis(@Param("sceneId")Integer sceneId,@Param("id")Integer id);
 
     List<ReportAttributeDto> findAttributeNameList(@Param("report") ReportDto reportDto);
+
+    List<DeviceParmInfo> findBySceneDeviceId(@Param("info")DeviceParmInfo deviceParmInfo);
+
+    List<DeviceParmInfo> selectBindByDeviceId(@Param("sceneId")Long sceneId,@Param("deviceId")Long deviceId);
 }

+ 24 - 0
sms_water/src/main/java/com/huaxu/dao/DeviceSceneMapper.java

@@ -0,0 +1,24 @@
+package com.huaxu.dao;
+
+import com.huaxu.entity.DeviceSceneEntity;
+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_sceneDAO接口
+ * @author: WYY
+ * @date 2020-12-23 09:57
+ */
+@Mapper
+public interface DeviceSceneMapper extends BaseMapper<DeviceSceneEntity> {
+     DeviceSceneEntity findDeviceSceneById(Serializable id);
+
+     List<DeviceSceneEntity> findList(DeviceSceneEntity deviceSceneEntity);
+
+     /**删除相关方法  使用mybatis-plus集成的 **/
+}

+ 33 - 0
sms_water/src/main/java/com/huaxu/dto/DeviceParmInfo.java

@@ -0,0 +1,33 @@
+package com.huaxu.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备参数")
+public class DeviceParmInfo {
+    /** 一级场景 */
+    @ApiModelProperty(value = "一级场景")
+    private Long parentSceneId;
+    @ApiModelProperty(value = "场景")
+    private Long sceneId;
+    @ApiModelProperty(value = "主键")
+    @JsonIgnore
+    private Long id;
+    @ApiModelProperty(value = "场景ids")
+    @JsonIgnore
+    private List<Long> sceneIds;
+    @ApiModelProperty("是否选择(0未选择 1已选择)")
+    private Integer isCheck;
+    @ApiModelProperty("设备id")
+    private Integer deviceId;
+    @ApiModelProperty("设备属性id")
+    private Integer attributeId;
+    @ApiModelProperty("设备属性名称")
+    private String attributeName;
+}

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

@@ -39,6 +39,9 @@ public class DeviceEntity implements Serializable {
     private Integer companyOrgId;
     @ApiModelProperty(value = "所属部门")
     private Integer deptOrgId;
+    @ApiModelProperty(value = "一级所属场景")
+    @TableField(exist = false)
+    private Integer parentSceneId;
     @ApiModelProperty(value = "所属场景")
     private Integer sceneId;
     @ApiModelProperty(value = "经度")

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

@@ -1,6 +1,7 @@
 package com.huaxu.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -23,6 +24,12 @@ public class DeviceParmEntity implements Serializable {
     private Integer id;
     @ApiModelProperty("租户标识")
     private String tenantId;
+    /** 一级场景 */
+    @ApiModelProperty(value = "一级场景")
+    private Long parentSceneId;
+    /** 二级场景 */
+    @ApiModelProperty(value = "二级场景")
+    private Long sceneId;
     @ApiModelProperty("设备id")
     private Integer deviceId;
     @ApiModelProperty("设备属性id")
@@ -41,7 +48,8 @@ public class DeviceParmEntity implements Serializable {
     private Boolean isAlarm;
     @ApiModelProperty("是否工艺图参数")
     private Boolean isArtwork;
-
+    @ApiModelProperty("参数类型")
+    private Integer parmType;
     @ApiModelProperty("排序")
     private Integer seq;
     @ApiModelProperty(value = "备注")

+ 71 - 0
sms_water/src/main/java/com/huaxu/entity/DeviceSceneEntity.java

@@ -0,0 +1,71 @@
+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 com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * sms_device_scene
+ * @author: WYY
+ * @date 2020-12-23 09:57
+ */
+@Data
+@TableName("sms_device_scene")
+public class DeviceSceneEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */ 
+	@TableId(type = IdType.AUTO)
+    @JsonIgnore
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /** 租户标识 */
+    @ApiModelProperty(value = "租户标识")
+    private String tenantId;
+
+    /** 一级场景 */
+    @ApiModelProperty(value = "一级场景")
+    @JsonIgnore
+    private Long parentSceneId;
+
+    /** 二级场景 */
+    @ApiModelProperty(value = "二级场景")
+    private Long sceneId;
+
+    /** 设备信息 */
+    @ApiModelProperty(value = "设备信息")
+    private Long deviceId;
+
+    @ApiModelProperty(value = "设备参数信息")
+    @TableField(exist = false)
+    List<DeviceParmEntity> deviceParms;
+
+    /** 数据删除标记 */
+    @TableLogic
+    @ApiModelProperty(value = "数据删除标记")
+    @JsonIgnore
+    private Integer status;
+
+    @JsonIgnore
+    private Date dateCreate;
+
+    @JsonIgnore
+    private String createBy;
+
+    /** 更新者 */
+    @JsonIgnore
+    private String updateBy;
+    /** 更新时间 */
+    @JsonIgnore
+    private Date dateUpdate;
+
+}

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

@@ -147,5 +147,6 @@ public class SceneEntity implements Serializable {
 
     /** 一级场景名称 */
     @ApiModelProperty(value = "一级场景名称",hidden = true)
+    @TableField(exist = false)
     private String parentSceneName;
 }

+ 7 - 2
sms_water/src/main/java/com/huaxu/service/DeviceParmService.java

@@ -1,6 +1,7 @@
 package com.huaxu.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huaxu.dto.DeviceParmInfo;
 import com.huaxu.dto.ReportAttributeDto;
 import com.huaxu.dto.ReportDto;
 import com.huaxu.entity.DeviceParmEntity;
@@ -24,12 +25,12 @@ public interface DeviceParmService {
      * 查询单个设备参数信息
      * @return
      */
-    List<DeviceParmEntity> selectByDeviceId(Integer id);
+    List<DeviceParmEntity> selectByDeviceId(Integer sceneId,Integer id);
     /**
      * 查询单个设备参数信息针对工艺图
      * @return
      */
-    List<DeviceParmEntity> selectByDeviceIdForGis(Integer id);
+    List<DeviceParmEntity> selectByDeviceIdForGis(Integer sceneId,Integer id);
 
     /**
      * 添加设备参数
@@ -79,4 +80,8 @@ public interface DeviceParmService {
     IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity);
 
     List<ReportAttributeDto> findAttributeNameList(ReportDto reportDto);
+
+    List<DeviceParmInfo> selectBySceneAndDeviceId(Integer parentSceneId,Integer sceneId, Integer deviceId);
+
+    void batchSaveEdit(Long sceneId, Long deviceId,List<DeviceParmInfo> deviceParmInfos);
 }

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

@@ -0,0 +1,79 @@
+package com.huaxu.service;
+
+
+import com.huaxu.dao.DeviceSceneMapper;
+import com.huaxu.entity.DeviceSceneEntity;
+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-12-23 09:57
+ */
+@Service
+public class DeviceSceneService extends ServiceImpl<DeviceSceneMapper, DeviceSceneEntity> {
+
+    @Resource
+    private DeviceSceneMapper deviceSceneMapper;
+
+    /**
+     * 查列表
+     */
+    public List<DeviceSceneEntity> findList(DeviceSceneEntity deviceSceneEntity) {
+        return deviceSceneMapper.findList(deviceSceneEntity);
+    }
+
+    /**
+     * 批量删除
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public boolean delDeviceSceneByIds(Long[] ids) {
+        return this.removeByIds(Arrays.asList(ids));
+    }
+
+    /**
+     * 单个删除
+     */
+    public boolean delDeviceSceneById(Long id) {
+        return this.removeById(id);
+    }
+
+    /**
+     * 保存
+     */
+    public boolean addDeviceScene(DeviceSceneEntity deviceScene) {
+        if (this.save(deviceScene)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 修改根居ID
+     */
+    public boolean updateDeviceSceneById(DeviceSceneEntity deviceScene) {
+        if (this.updateById(deviceScene)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 根居ID获取对象
+     */
+    public DeviceSceneEntity findDeviceSceneById(Long id) {
+        return deviceSceneMapper.findDeviceSceneById(id);
+    }
+}

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

@@ -51,4 +51,5 @@ public interface DeviceService {
     List<DeviceDto> selectList(DeviceDto deviceDto);
 
     List<DeviceDto> selectListByScene(DeviceDto deviceDto);
+
 }

+ 7 - 0
sms_water/src/main/java/com/huaxu/service/SceneService.java

@@ -7,6 +7,7 @@ import com.huaxu.common.StringUtils;
 import com.huaxu.dao.SceneImageMapper;
 import com.huaxu.dao.SceneMapper;
 import com.huaxu.dto.DeviceDto;
+import com.huaxu.entity.DeviceSceneEntity;
 import com.huaxu.entity.SceneEntity;
 import com.huaxu.entity.SceneImageEntity;
 import com.huaxu.entity.SceneTypeEntity;
@@ -48,6 +49,8 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     private SceneImageService sceneImageService;
     @Autowired
     private OrgInfoUtil orgInfoUtil;
+    @Autowired
+    private DeviceSceneService deviceSceneService;
 
     /**
      * 自定义分页查询,含关联实体对像
@@ -364,4 +367,8 @@ public class SceneService extends ServiceImpl<SceneMapper, SceneEntity> {
     public SceneEntity findParentSceneById(Long id) {
         return sceneMapper.findParentSceneById(id);
     }
+
+    public void saveUpdateBatch(List<DeviceSceneEntity> deviceScenes) {
+        //先进行查询判断哪些设备已经被保存
+    }
 }

+ 88 - 9
sms_water/src/main/java/com/huaxu/service/impl/DeviceParmServiceImpl.java

@@ -3,15 +3,22 @@ package com.huaxu.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huaxu.dao.DeviceParmMapper;
+import com.huaxu.dto.DeviceParmInfo;
 import com.huaxu.dto.ReportAttributeDto;
 import com.huaxu.dto.ReportDto;
 import com.huaxu.entity.DeviceParmEntity;
+import com.huaxu.entity.DeviceSceneEntity;
+import com.huaxu.entity.SceneEntity;
 import com.huaxu.model.LoginUser;
 import com.huaxu.service.DeviceParmService;
+import com.huaxu.service.DeviceSceneService;
+import com.huaxu.service.SceneService;
 import com.huaxu.util.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
@@ -22,10 +29,14 @@ import java.util.List;
  * @data 2020-11-17 11:02
  */
 @Service
-public class DeviceParmServiceImpl  implements DeviceParmService  {
+public class DeviceParmServiceImpl  implements DeviceParmService {
 
     @Resource
     private DeviceParmMapper deviceParmMapper;
+    @Autowired
+    private SceneService sceneService;
+    @Autowired
+    private DeviceSceneService deviceSceneService;
 
     @Override
     public DeviceParmEntity selectById(Integer id) {
@@ -33,8 +44,8 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
     }
 
     @Override
-    public List<DeviceParmEntity> selectByDeviceId(Integer id) {
-        List<DeviceParmEntity> deviceParmEntities = deviceParmMapper.selectByDeviceId(id);
+    public List<DeviceParmEntity> selectByDeviceId(Integer sceneId, Integer id) {
+        List<DeviceParmEntity> deviceParmEntities = deviceParmMapper.selectByDeviceId(sceneId, id);
         for (DeviceParmEntity item : deviceParmEntities) {
             item.setDeviceId(id);
         }
@@ -42,8 +53,8 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
     }
 
     @Override
-    public List<DeviceParmEntity> selectByDeviceIdForGis(Integer id) {
-        List<DeviceParmEntity> deviceParmEntities = deviceParmMapper.selectByDeviceIdForGis(id);
+    public List<DeviceParmEntity> selectByDeviceIdForGis(Integer sceneId, Integer id) {
+        List<DeviceParmEntity> deviceParmEntities = deviceParmMapper.selectByDeviceIdForGis(sceneId, id);
         for (DeviceParmEntity item : deviceParmEntities) {
             item.setDeviceId(id);
         }
@@ -64,9 +75,9 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
     }
 
     @Override
-    public Integer batchInsert(List<DeviceParmEntity> deviceParmEntities){
+    public Integer batchInsert(List<DeviceParmEntity> deviceParmEntities) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        for(DeviceParmEntity deviceParmEntity:deviceParmEntities){
+        for (DeviceParmEntity deviceParmEntity : deviceParmEntities) {
             deviceParmEntity.setDateUpdate(new Date());
             deviceParmEntity.setUpdateBy(loginUser.getUsername());
             deviceParmEntity.setDateCreate(new Date());
@@ -90,7 +101,7 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
     @Override
     public void batchUpdate(List<DeviceParmEntity> deviceParmEntities) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        for(DeviceParmEntity deviceParmEntity:deviceParmEntities){
+        for (DeviceParmEntity deviceParmEntity : deviceParmEntities) {
             deviceParmEntity.setDateUpdate(new Date());
             deviceParmEntity.setUpdateBy(loginUser.getUsername());
             deviceParmMapper.update(deviceParmEntity);
@@ -116,7 +127,7 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
 
     @Override
     public IPage<DeviceParmEntity> selectPage(IPage<DeviceParmEntity> page, DeviceParmEntity deviceParmEntity) {
-        return deviceParmMapper.selectPage(page,deviceParmEntity);
+        return deviceParmMapper.selectPage(page, deviceParmEntity);
     }
 
     @Override
@@ -124,4 +135,72 @@ public class DeviceParmServiceImpl  implements DeviceParmService  {
         return deviceParmMapper.findAttributeNameList(reportDto);
     }
 
+    @Override
+    public List<DeviceParmInfo> selectBySceneAndDeviceId(Integer parentSceneId, Integer sceneId, Integer deviceId) {
+        List<DeviceParmInfo> deviceParmInfos = new ArrayList<>();
+        DeviceParmInfo deviceParmInfo = new DeviceParmInfo();
+        deviceParmInfo.setParentSceneId(parentSceneId.longValue());
+        deviceParmInfo.setSceneId(sceneId.longValue());
+        deviceParmInfo.setDeviceId(deviceId);
+        List<Long> ids = sceneService.findByParentIdsLike(parentSceneId.longValue());
+        if (ids.contains(sceneId.longValue())) {
+            ids.remove(sceneId.longValue());
+        }
+        deviceParmInfo.setSceneIds(ids);
+        deviceParmInfos = deviceParmMapper.findBySceneDeviceId(deviceParmInfo);
+        for (DeviceParmInfo item : deviceParmInfos) {
+            item.setSceneId(sceneId.longValue());
+            item.setParentSceneId(parentSceneId.longValue());
+        }
+        return deviceParmInfos;
+    }
+
+    @Override
+    public void batchSaveEdit(Long sceneId, Long deviceId, List<DeviceParmInfo> deviceParmInfos) {
+        //判断此设备是否已经被绑定
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        DeviceSceneEntity deviceSceneEntity = new DeviceSceneEntity();
+        deviceSceneEntity.setSceneId(sceneId);
+        deviceSceneEntity.setDeviceId(deviceId);
+        SceneEntity sceneEntity = sceneService.findParentSceneById(sceneId);
+        List<DeviceSceneEntity> deviceScenes = deviceSceneService.findList(deviceSceneEntity);
+        if (deviceParmInfos.size() == 0 && deviceScenes.size() > 0) {
+            //如果所有的参数未被选择,则取消掉设备与场景的关联关系
+            deviceSceneService.removeById(deviceScenes.get(0).getId());
+        } else if (deviceParmInfos.size() > 0) {
+            //没有的时候创建关联关系
+            if (deviceScenes.size() == 0) {
+                deviceSceneEntity.setParentSceneId(sceneEntity.getParentSceneId());
+            }
+            //查询已经绑定的所有参数
+            List<DeviceParmInfo> deviceParmInfoList = deviceParmMapper.selectBindByDeviceId(sceneId, deviceId);
+            List<Long> ids = new ArrayList<>();
+            for (DeviceParmInfo info : deviceParmInfoList) {
+                ids.add(info.getId());
+            }
+            for (DeviceParmInfo item : deviceParmInfos) {
+                if (ids.contains(item.getAttributeId().longValue())) {
+                    ids.remove(item.getAttributeId().longValue());
+                } else if (!ids.contains(item.getAttributeId().longValue())) {
+                    //新增
+                    DeviceParmEntity deviceParmEntity = new DeviceParmEntity();
+                    deviceParmEntity.setSceneId(sceneId);
+                    deviceParmEntity.setParentSceneId(sceneEntity.getParentSceneId());
+                    deviceParmEntity.setDeviceId(deviceId.intValue());
+                    deviceParmEntity.setStatus(1);
+                    deviceParmEntity.setAttributeId(item.getAttributeId());
+                    deviceParmEntity.setAttributeName(item.getAttributeName());
+                    deviceParmEntity.setCreateBy(loginUser.getName());
+                    deviceParmEntity.setDateCreate(new Date());
+                    deviceParmEntity.setUpdateBy(loginUser.getName());
+                    deviceParmEntity.setDateUpdate(new Date());
+                    this.insert(deviceParmEntity);
+                }
+            }
+            //将ids 移除
+            for(Long id : ids) {
+                deviceParmMapper.deleteById(id.intValue());
+            }
+        }
+    }
 }

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

@@ -111,4 +111,5 @@ public class DeviceServiceImpl implements DeviceService {
         deviceDto.setPermissonType(loginUser.getPermissonType());
         return deviceMapper.selectListByScene(deviceDto);
     }
+
 }

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

@@ -127,7 +127,7 @@
         (SELECT IFNULL(a.REMARK,b.`NAME`) AS "attributeName",
         c.min_value as "minValue" ,c.max_value as "maxValue" ,c.avg_value as "avgValue" ,
         c.sum_value as "sumValue" ,c.latest_value as "latestValue",
-        b.ATTRIBUTE_TYPE
+        a.PARM_TYPE as ATTRIBUTE_TYPE
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
         INNER JOIN sms_day_report c on a.ATTRIBUTE_ID=c.ATTRIBUTE_ID and a.DEVICE_ID=c.DEVICE_ID
@@ -158,13 +158,13 @@
         from
         (SELECT
         c.year,c.month,c.day,c.hour,
-        case when b.ATTRIBUTE_TYPE=4 then
+        case when a.PARM_TYPE=4 then
         c.latest_value end as "intakeWaterUsage",
-        case when b.ATTRIBUTE_TYPE=3 then
+        case when a.PARM_TYPE=3 then
         c.latest_value end as "yieldWaterUsage",
-        case when b.ATTRIBUTE_TYPE=5 then
+        case when a.PARM_TYPE=5 then
         c.latest_value end as "powerUsage",
-        case when b.ATTRIBUTE_TYPE=6 then
+        case when a.PARM_TYPE=6 then
         c.latest_value end as "drugUsage"
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
@@ -180,7 +180,7 @@
         <if test="report.month != null ">and c.`MONTH`=#{report.month}</if>
         <if test="report.day != null ">and c.`DAY`=#{report.day}</if>
         <if test="report.parentSceneId != null ">and c.PARENT_SCENE_ID=#{report.parentSceneId}</if>
-        and (b.ATTRIBUTE_TYPE =3 or b.ATTRIBUTE_TYPE =4 or b.ATTRIBUTE_TYPE =5 or b.ATTRIBUTE_TYPE =6)) tab
+        and (a.PARM_TYPE =3 or a.PARM_TYPE =4 or a.PARM_TYPE =5 or a.PARM_TYPE =6)) tab
         group by tab.year,tab.month,tab.day,tab.HOUR
         order by tab.year desc,tab.month desc,tab.day desc,tab.hour desc
     </select>

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

@@ -27,32 +27,6 @@
             ,t.DEVICE_TYPE as "deviceType"
             ,t.DEVICE_MODE as "deviceMode"
     </sql>
-    <sql id="Base_Column_SceneList">
-            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"
-            ,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_device_type t on d.DEVICE_TYPE_ID = t.id
     </sql>
@@ -81,7 +55,10 @@
         select
         <include refid="Base_Column_List"/>
         from sms_device d
-        <include refid="deviceJoins"/>
+        left join sms_device_type t on d.DEVICE_TYPE_ID = t.id
+        <if test="deviceDto.sceneId!= null and deviceDto.sceneId != 0 ">
+        inner join sms_device_scene s on s.DEVICE_ID=d.ID and s.SCENE_ID=#{deviceDto.sceneId}
+        </if>
         where d.status = 1
         <if test="deviceDto.tenantId != null and deviceDto.tenantId != '' ">
             and d.tenant_id = #{deviceDto.tenantId}
@@ -131,14 +108,13 @@
     <!--通过实体作为筛选条件查询-->
     <select id="selectListByScene" resultType="com.huaxu.dto.DeviceDto">
         select
-        d.id
+         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"
@@ -157,7 +133,7 @@
         ,case when s.ID is null then 0 else 1 end as "isCheck"
         from sms_device d
         left join sms_device_type t on d.DEVICE_TYPE_ID = t.id
-        left join sms_device_scene s on s.DEVICE_ID=d.ID and d.SCENE_ID=#{deviceDto.sceneId}
+        left join sms_device_scene s on s.DEVICE_ID=d.ID and s.SCENE_ID=#{deviceDto.sceneId}
         where d.status = 1
         <if test="deviceDto.tenantId != null and deviceDto.tenantId != '' ">
             and d.tenant_id = #{deviceDto.tenantId}
@@ -297,7 +273,10 @@
         select
         <include refid="Base_Column_List"/>
         from sms_device d
-        <include refid="deviceJoins"/>
+        left join sms_device_type t on d.DEVICE_TYPE_ID = t.id
+        <if test="deviceDto.sceneId!= null and deviceDto.sceneId != 0 ">
+            inner join sms_device_scene s on s.DEVICE_ID=d.ID and s.SCENE_ID=#{deviceDto.sceneId}
+        </if>
         where d.status = 1
         <if test="deviceDto.tenantId != null and deviceDto.tenantId != '' ">
             and d.tenant_id = #{deviceDto.tenantId}

+ 37 - 8
sms_water/src/main/resources/mapper/DeviceParmMapper.xml

@@ -5,6 +5,8 @@
     <sql id="Base_Column_List">
              p.ID as "id"
             ,p.TENANT_ID as "tenantId"
+            ,p.parent_scene_id as "parentSceneId"
+            ,p.scene_id as "sceneId"
             ,p.DEVICE_ID as "deviceId"
             ,p.ATTRIBUTE_ID as "attributeId"
             ,p.IS_SUSPENSION as "isSuspension"
@@ -30,6 +32,8 @@
     <select id="selectByDeviceId" resultType="com.huaxu.entity.DeviceParmEntity">
         select      p.ID as "id"
                     ,p.TENANT_ID as "tenantId"
+                    ,p.parent_scene_id as "parentSceneId"
+                    ,p.scene_id as "sceneId"
                     ,p.DEVICE_ID as "deviceId"
                     ,b.id  as "attributeId"
                     ,p.IS_SUSPENSION as "isSuspension"
@@ -46,9 +50,10 @@
                     ,p.DATE_UPDATE as "dateUpdate"
                     ,p.UPDATE_BY as "updateBy"
                     ,b.`NAME` as "attributeName"
+                    ,p.PARM_TYPE as "parmType"
         from sms_device  a
-        left join sms_device_attribute b on a.DEVICE_TYPE_ID=b.DEVICE_TYPE_ID and b.`STATUS`=1
-        left join sms_device_parm p on p.DEVICE_ID=a.id and p.ATTRIBUTE_ID=b.ID and p.`STATUS`=1
+        inner join sms_device_parm p on p.DEVICE_ID=a.id and p.scene_id = #{sceneId} and p.`STATUS`=1
+        inner join sms_device_attribute b on p.ATTRIBUTE_ID=b.id and b.`STATUS`=1
         where a.id=#{id}
     </select>
     <select id="selectByDeviceIdForGis" resultType="com.huaxu.entity.DeviceParmEntity">
@@ -71,8 +76,8 @@
                     ,p.UPDATE_BY as "updateBy"
                     ,b.`NAME` as "attributeName"
         from sms_device  a
-        left join sms_device_attribute b on a.DEVICE_TYPE_ID=b.DEVICE_TYPE_ID and b.`STATUS`=1
-        left join sms_device_parm p on p.DEVICE_ID=a.id and p.ATTRIBUTE_ID=b.ID and p.`STATUS`=1
+         inner join sms_device_parm p on p.DEVICE_ID=a.id and p.parent_scene_id = #{sceneId} and p.`STATUS`=1
+        inner join sms_device_attribute b on p.ATTRIBUTE_ID=b.id and b.`STATUS`=1
         where a.id=#{id} and p.IS_ARTWORK=1  order by  p.seq is null,p.seq asc
     </select>
 
@@ -106,17 +111,17 @@
 
     <!-- 新增所有列 -->
     <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 ,SEQ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY )
-        VALUES(#{tenantId},#{deviceId},#{attributeId},#{isSuspension},#{isReport},#{isChart},#{isMap},#{isAlarm},#{isArtwork},#{remark},#{seq},#{status},#{dateCreate},#{createBy},#{dateUpdate},#{updateBy})
+        INSERT INTO sms_device_parm (TENANT_ID ,parent_scene_id,scene_id,DEVICE_ID ,ATTRIBUTE_ID ,IS_SUSPENSION ,IS_REPORT ,IS_CHART ,IS_MAP ,IS_ALARM ,IS_ARTWORK ,REMARK ,SEQ,STATUS ,DATE_CREATE ,CREATE_BY ,DATE_UPDATE ,UPDATE_BY )
+        VALUES(#{tenantId},#{parentSceneId},#{sceneId},#{deviceId},#{attributeId},#{isSuspension},#{isReport},#{isChart},#{isMap},#{isAlarm},#{isArtwork},#{remark},#{seq},#{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
+        INSERT INTO sms_device_parm (TENANT_ID ,parent_scene_id,scene_id,DEVICE_ID ,ATTRIBUTE_ID ,IS_SUSPENSION ,IS_REPORT ,IS_CHART ,IS_MAP
         ,IS_ALARM ,IS_ARTWORK ,REMARK ,SEQ,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},#{seq},#{item.status},#{item.dateCreate},#{item.createBy},#{item.dateUpdate},#{item.updateBy})
+            (#{item.tenantId},#{item.parentSceneId},#{item.sceneId},#{item.deviceId},#{item.attributeId},#{item.isSuspension},#{item.isReport},#{item.isChart},#{item.isMap},#{item.isAlarm},#{item.isArtwork},#{item.remark},#{seq},#{item.status},#{item.dateCreate},#{item.createBy},#{item.dateUpdate},#{item.updateBy})
         </foreach>
     </insert>
 
@@ -209,5 +214,29 @@
         ORDER BY a.SEQ
         ) as tab
     </select>
+    <select id="findBySceneDeviceId" resultType="com.huaxu.dto.DeviceParmInfo">
+            select a.id as "deviceId",b.id as "attributeId",b.`NAME` as "attributeName"
+            ,case when p.ID is null then 0 else 1 end as "isCheck"
+            from sms_device a
+            inner join sms_device_attribute b on a.DEVICE_TYPE_ID= b.DEVICE_TYPE_ID
+            left join sms_device_parm p on p.DEVICE_ID=a.ID and p.ATTRIBUTE_ID=b.ID and p.`STATUS`=1 and p.SCENE_ID=#{info.sceneId}
+            where a.id=#{info.deviceId}
+        <if test="info.sceneIds != null and info.sceneIds.size() > 0">
+            and b.id not in (
+                  select d.ATTRIBUTE_ID
+                     from sms_device_parm d
+                  where d.scene_id in
+               <foreach collection="info.sceneIds" item="dramaId" open="(" close=")" separator=",">
+                   #{dramaId}
+               </foreach>
+               )
+        </if>
+    </select>
+    <select id="selectBindByDeviceId" resultType="com.huaxu.dto.DeviceParmInfo">
+        select p.id,a.id as "deviceId",p.attribute_id as "attributeId"
+        from sms_device a
+        inner join sms_device_parm p on p.DEVICE_ID=a.ID and p.`STATUS`=1 and p.SCENE_ID=#{sceneId}
+        where a.ID=#{deviceId}
+    </select>
 
 </mapper>

+ 55 - 0
sms_water/src/main/resources/mapper/DeviceSceneMapper.xml

@@ -0,0 +1,55 @@
+<?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.DeviceSceneMapper">
+    <resultMap type="com.huaxu.entity.DeviceSceneEntity" id="DeviceSceneResult">
+        <result property="id" column="id"/>
+        <result property="tenantId" column="tenant_id"/>
+        <result property="parentSceneId" column="parent_scene_id"/>
+        <result property="sceneId" column="scene_id"/>
+        <result property="deviceId" column="device_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="deviceSceneColumns">
+         a.id as "id" ,
+         a.tenant_id as "tenantId" ,
+         a.parent_scene_id as "parentSceneId" ,
+         a.scene_id as "sceneId" ,
+         a.device_id as "deviceId" ,
+         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="findDeviceSceneById" resultType="com.huaxu.entity.DeviceSceneEntity">
+        SELECT
+        <include refid="deviceSceneColumns"/>
+        FROM sms_device_scene a
+        WHERE a.id = #{id} and a.status=1
+    </select>
+
+    <!--  根据获取实体List   -->
+    <select id="findList" resultType="com.huaxu.entity.DeviceSceneEntity">
+        SELECT
+        <include refid="deviceSceneColumns"/>
+        FROM sms_device_scene a
+        <where>
+            a.status=1
+            <if test="tenantId != null  and tenantId != ''">and a.tenant_id = #{tenantId}</if>
+            <if test="parentSceneId != null ">and a.parent_scene_id = #{parentSceneId}</if>
+            <if test="sceneId != null ">and a.scene_id = #{sceneId}</if>
+            <if test="deviceId != null ">and a.device_id = #{deviceId}</if>
+        </where>
+    </select>
+</mapper>

+ 6 - 7
sms_water/src/main/resources/mapper/MonitorInfoMapper.xml

@@ -98,26 +98,25 @@
        SELECT IFNULL(a.REMARK,b.`NAME`) AS "attributeName",a.ATTRIBUTE_ID as "attributeId",
         c.min_value as "minValue" ,c.max_value as "maxValue" ,c.avg_value as "avgValue" ,
         c.sum_value as "sumValue" ,c.latest_value as "latestValue",
-        b.ATTRIBUTE_TYPE as "attributeType"
+        a.PARM_TYPE as "attributeType"
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
         INNER JOIN sms_day_report c on a.ATTRIBUTE_ID=c.ATTRIBUTE_ID and a.DEVICE_ID=c.DEVICE_ID
-        INNER JOIN (select b.ATTRIBUTE_TYPE,min(d.collect_date) collect_date
+        INNER JOIN (select b.PARM_TYPE,min(d.collect_date) collect_date
         from sms_day_report d
-        INNER JOIN sms_device_attribute b on d.ATTRIBUTE_ID=b.ID
+        INNER JOIN sms_device_parm b on d.ATTRIBUTE_ID=b.ID
         where d.DEVICE_ID = #{report.deviceId}
         <if test="report.year != null ">and d.`YEAR`=#{report.year}</if>
         <if test="report.month != null ">and d.`MONTH`=#{report.month}</if>
         <if test="report.day != null ">and d.`DAY`=#{report.day}</if>
-        and (b.ATTRIBUTE_TYPE =3 or b.ATTRIBUTE_TYPE =4 or b.ATTRIBUTE_TYPE =5 or b.ATTRIBUTE_TYPE =6)
-        GROUP BY b.ATTRIBUTE_TYPE) as tab on b.ATTRIBUTE_TYPE=tab.ATTRIBUTE_TYPE and c.collect_date=tab.collect_date
+        and (b.PARM_TYPE =3 or b.PARM_TYPE =4 or b.PARM_TYPE =5 or b.PARM_TYPE =6)
+        GROUP BY b.PARM_TYPE) as tab on a.PARM_TYPE=tab.PARM_TYPE and c.collect_date=tab.collect_date
         where
         a.DEVICE_ID = #{report.deviceId}
         <if test="report.year != null ">and c.`YEAR`=#{report.year}</if>
         <if test="report.month != null ">and c.`MONTH`=#{report.month}</if>
         <if test="report.day != null ">and c.`DAY`=#{report.day}</if>
-        and (b.ATTRIBUTE_TYPE =3 or b.ATTRIBUTE_TYPE =4 or b.ATTRIBUTE_TYPE =5 or b.ATTRIBUTE_TYPE =6)
+        and (a.PARM_TYPE =3 or a.PARM_TYPE =4 or a.PARM_TYPE =5 or a.PARM_TYPE =6)
         ORDER BY c.collect_date desc
-        limit 1
     </select>
 </mapper>

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

@@ -123,7 +123,7 @@
         (SELECT IFNULL(a.REMARK,b.`NAME`) AS "attributeName",
         c.min_value as "minValue" ,c.max_value as "maxValue" ,c.avg_value as "avgValue" ,
         c.sum_value as "sumValue" ,c.latest_value as "latestValue",
-        b.ATTRIBUTE_TYPE
+        a.PARM_TYPE ATTRIBUTE_TYPE
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
         INNER JOIN sms_month_report c on a.ATTRIBUTE_ID=c.ATTRIBUTE_ID and a.DEVICE_ID=c.DEVICE_ID
@@ -153,13 +153,13 @@
         from
         (SELECT
         c.year,c.month,c.day,
-        case when b.ATTRIBUTE_TYPE=4 then
+        case when a.PARM_TYPE=4 then
         c.latest_value end as "intakeWaterUsage",
-        case when b.ATTRIBUTE_TYPE=3 then
+        case when a.PARM_TYPE=3 then
         c.latest_value end as "yieldWaterUsage",
-        case when b.ATTRIBUTE_TYPE=5 then
+        case when a.PARM_TYPE=5 then
         c.latest_value end as "powerUsage",
-        case when b.ATTRIBUTE_TYPE=6 then
+        case when a.PARM_TYPE=6 then
         c.latest_value end as "drugUsage"
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
@@ -174,7 +174,7 @@
         <if test="report.year != null ">and c.`YEAR`=#{report.year}</if>
         <if test="report.month != null ">and c.`MONTH`=#{report.month}</if>
         <if test="report.parentSceneId != null ">and c.PARENT_SCENE_ID=#{report.parentSceneId}</if>
-        and (b.ATTRIBUTE_TYPE =3 or b.ATTRIBUTE_TYPE =4 or b.ATTRIBUTE_TYPE =5 or b.ATTRIBUTE_TYPE =6)) tab
+        and (a.PARM_TYPE =3 or a.PARM_TYPE =4 or a.PARM_TYPE =5 or a.PARM_TYPE =6)) tab
         group by tab.year,tab.month,tab.day
         order by tab.year desc,tab.month desc,tab.day desc
     </select>

+ 1 - 1
sms_water/src/main/resources/mapper/SceneMapper.xml

@@ -302,7 +302,7 @@
     </select>
     <!--根据场景id查询一级场景信息-->
     <select id="findParentSceneById" resultType="com.huaxu.entity.SceneEntity">
-        select t1.*,t2.id parentsceneid,t2.scene_name parentscenename
+        select t2.id as "parentSceneId",t2.scene_name as "parentScenename"
         from sms_scene t1
         left join sms_scene t2 on substring_index(substring_index(t1.parent_scene_ids, ',', 2), ',', -1)=t2.id
         where t1.id=#{id}

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

@@ -121,7 +121,7 @@
         (SELECT IFNULL(a.REMARK,b.`NAME`) AS "attributeName",
         c.min_value as "minValue" ,c.max_value as "maxValue" ,c.avg_value as "avgValue" ,
         c.sum_value as "sumValue" ,c.latest_value as "latestValue",
-        b.ATTRIBUTE_TYPE
+        a.PARM_TYPE as ATTRIBUTE_TYPE
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
         INNER JOIN sms_year_report c on a.ATTRIBUTE_ID=c.ATTRIBUTE_ID and a.DEVICE_ID=c.DEVICE_ID
@@ -150,13 +150,13 @@
         from
         (SELECT
         c.year,c.month,
-        case when b.ATTRIBUTE_TYPE=4 then
+        case when a.PARM_TYPE=4 then
         c.latest_value end as "intakeWaterUsage",
-        case when b.ATTRIBUTE_TYPE=3 then
+        case when a.PARM_TYPE=3 then
         c.latest_value end as "yieldWaterUsage",
-        case when b.ATTRIBUTE_TYPE=5 then
+        case when a.PARM_TYPE=5 then
         c.latest_value end as "powerUsage",
-        case when b.ATTRIBUTE_TYPE=6 then
+        case when a.PARM_TYPE=6 then
         c.latest_value end as "drugUsage"
         FROM sms_device_parm a
         INNER JOIN sms_device_attribute b on a.ATTRIBUTE_ID=b.ID
@@ -171,7 +171,7 @@
         <if test="report.year != null ">and c.`YEAR`=#{report.year}</if>
         <if test="report.month != null ">and c.`MONTH`=#{report.month}</if>
         <if test="report.parentSceneId != null ">and c.PARENT_SCENE_ID=#{report.parentSceneId}</if>
-        and (b.ATTRIBUTE_TYPE =3 or b.ATTRIBUTE_TYPE =4 or b.ATTRIBUTE_TYPE =5 or b.ATTRIBUTE_TYPE =6)) tab
+        and (a.PARM_TYPE =3 or a.PARM_TYPE =4 or a.PARM_TYPE =5 or a.PARM_TYPE =6)) tab
         group by tab.year,tab.month
         order by tab.year desc,tab.month desc
     </select>