Prechádzať zdrojové kódy

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 rok pred
rodič
commit
ae9b263ed8
18 zmenil súbory, kde vykonal 689 pridanie a 10 odobranie
  1. 79 3
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildController.java
  2. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildFacilityRelateController.java
  3. 63 2
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildFacilityTypeController.java
  4. 7 1
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuild.java
  5. 51 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuildFacilityRelate.java
  6. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseBuildFacilityRelateMapper.java
  7. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildFacilityRelateService.java
  8. 11 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildFacilityTypeService.java
  9. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildService.java
  10. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityRelateServiceImpl.java
  11. 78 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityTypeServiceImpl.java
  12. 171 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildServiceImpl.java
  13. 4 4
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java
  14. 25 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseBuildFacilityTypeRequestVO.java
  15. 35 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityRelateRequestVO.java
  16. 37 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityRelateResponeVO.java
  17. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityStatusVO.java
  18. 14 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseBuildFacilityRelateMapper.xml

+ 79 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildController.java

@@ -1,9 +1,17 @@
 package com.usky.iot.controller.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.iot.domain.BaseBuild;
+import com.usky.iot.service.BaseBuildService;
+import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
+import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
+import com.usky.iot.service.vo.BuildFacilityStatusVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.stereotype.Controller;
+import java.util.List;
 
 /**
  * <p>
@@ -13,9 +21,77 @@ import org.springframework.stereotype.Controller;
  * @author han
  * @since 2023-06-07
  */
-@Controller
+@RestController
 @RequestMapping("/baseBuild")
 public class BaseBuildController {
+    @Autowired
+    private BaseBuildService baseBuildService;
 
+    /**
+     * 新增
+     * @param baseBuild
+     * @return
+     */
+    @PostMapping
+    ApiResult<Void> add(@RequestBody BaseBuild baseBuild){
+        baseBuildService.add(baseBuild);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改
+     * @param baseBuild
+     * @return
+     */
+    @PutMapping
+    ApiResult<Void> update(@RequestBody BaseBuild baseBuild){
+        baseBuildService.update(baseBuild);
+        return ApiResult.success();
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/{id}")
+    ApiResult<Void> remove(@PathVariable("id") Integer id){
+        baseBuildService.remove(id);
+        return ApiResult.success();
+    }
+
+    /**
+     * 列表
+     * @return
+     */
+    @GetMapping("dataList")
+    ApiResult<List<BaseBuild>> dataList(){
+        return ApiResult.success(baseBuildService.dataList());
+    }
+
+    /**
+     * 关联设施信息列表
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("buildFacilityRelateList")
+    ApiResult<CommonPage<BuildFacilityRelateResponeVO>> buildFacilityRelateList(@RequestBody BuildFacilityRelateRequestVO requestVO){
+        return ApiResult.success(baseBuildService.buildFacilityRelateList(requestVO));
+    }
+
+    /**
+     * 建筑设施绑定解绑
+     * @param statusVO
+     * @return
+     */
+    @PostMapping("setBuildFacilityStatus")
+    ApiResult<Void> setBuildFacilityStatus(@RequestBody BuildFacilityStatusVO statusVO){
+        baseBuildService.setBuildFacilityStatus(statusVO);
+        return ApiResult.success();
+    }
 }
 
+
+
+
+

+ 21 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildFacilityRelateController.java

@@ -0,0 +1,21 @@
+package com.usky.iot.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2023-07-27
+ */
+@Controller
+@RequestMapping("/baseBuildFacilityRelate")
+public class BaseBuildFacilityRelateController {
+
+}
+

+ 63 - 2
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildFacilityTypeController.java

@@ -1,7 +1,13 @@
 package com.usky.iot.controller.web;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.iot.domain.BaseBuildFacilityType;
+import com.usky.iot.service.BaseBuildFacilityTypeService;
+import com.usky.iot.service.vo.BaseBuildFacilityTypeRequestVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 import org.springframework.stereotype.Controller;
 
@@ -13,9 +19,64 @@ import org.springframework.stereotype.Controller;
  * @author han
  * @since 2023-07-26
  */
-@Controller
+@RestController
 @RequestMapping("/baseBuildFacilityType")
 public class BaseBuildFacilityTypeController {
 
+    @Autowired
+    private BaseBuildFacilityTypeService baseBuildFacilityTypeService;
+
+    /**
+     * 新增
+     * @param baseBuildFacilityType
+     * @return
+     */
+    @PostMapping
+    public ApiResult<Void> add(@RequestBody BaseBuildFacilityType baseBuildFacilityType){
+        baseBuildFacilityTypeService.add(baseBuildFacilityType);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改
+     * @param baseBuildFacilityType
+     * @return
+     */
+    @PutMapping
+    public ApiResult<Void> update(@RequestBody BaseBuildFacilityType baseBuildFacilityType){
+        baseBuildFacilityTypeService.update(baseBuildFacilityType);
+        return ApiResult.success();
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/{id}")
+    public ApiResult<Void> remove(@PathVariable("id") Integer id){
+        baseBuildFacilityTypeService.remove(id);
+        return ApiResult.success();
+    }
+
+    /**
+     * 分页
+     * @param baseBuildFacilityTypeRequestVO
+     * @return
+     */
+    @PostMapping("page")
+    public ApiResult<CommonPage<BaseBuildFacilityType>> page(@RequestBody BaseBuildFacilityTypeRequestVO baseBuildFacilityTypeRequestVO){
+        return ApiResult.success(baseBuildFacilityTypeService.page(baseBuildFacilityTypeRequestVO));
+    }
+
 }
 
+
+
+
+
+
+
+
+
+

+ 7 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuild.java

@@ -2,6 +2,8 @@ package com.usky.iot.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import java.time.LocalDate;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -193,5 +195,9 @@ public class BaseBuild implements Serializable {
      */
     private Integer tenantId;
 
-
+    /**
+     * 建筑设施总数
+     */
+    @TableField(exist = false)
+    private Integer buildFacilityCount;
 }

+ 51 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuildFacilityRelate.java

@@ -0,0 +1,51 @@
+package com.usky.iot.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author han
+ * @since 2023-07-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseBuildFacilityRelate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 建筑id
+     */
+    private Integer buildId;
+
+    /**
+     * 建筑设施id
+     */
+    private Integer facilityId;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+
+}

+ 16 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseBuildFacilityRelateMapper.java

@@ -0,0 +1,16 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.BaseBuildFacilityRelate;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-07-27
+ */
+public interface BaseBuildFacilityRelateMapper extends CrudMapper<BaseBuildFacilityRelate> {
+
+}

+ 16 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildFacilityRelateService.java

@@ -0,0 +1,16 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.BaseBuildFacilityRelate;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-07-27
+ */
+public interface BaseBuildFacilityRelateService extends CrudService<BaseBuildFacilityRelate> {
+
+}

+ 11 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildFacilityTypeService.java

@@ -1,7 +1,10 @@
 package com.usky.iot.service;
 
+import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseBuildFacilityType;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.BaseBuildFacilityTypeRequestVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -12,5 +15,13 @@ import com.usky.common.mybatis.core.CrudService;
  * @since 2023-07-26
  */
 public interface BaseBuildFacilityTypeService extends CrudService<BaseBuildFacilityType> {
+    void add(BaseBuildFacilityType baseBuildFacilityType);
 
+    void update(BaseBuildFacilityType baseBuildFacilityType);
+
+    void remove(Integer id);
+
+    CommonPage<BaseBuildFacilityType> page(BaseBuildFacilityTypeRequestVO baseBuildFacilityTypeRequestVO);
+
+    boolean checkNameUnique(BaseBuildFacilityType baseBuildFacilityType);
 }

+ 20 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildService.java

@@ -1,7 +1,14 @@
 package com.usky.iot.service;
 
+import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseBuild;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
+import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
+import com.usky.iot.service.vo.BuildFacilityStatusVO;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +20,17 @@ import com.usky.common.mybatis.core.CrudService;
  */
 public interface BaseBuildService extends CrudService<BaseBuild> {
 
+    void add(BaseBuild baseBuild);
+
+    void update(BaseBuild baseBuild);
+
+    void remove(Integer id);
+
+    List<BaseBuild> dataList();
+
+    CommonPage<BuildFacilityRelateResponeVO> buildFacilityRelateList(BuildFacilityRelateRequestVO requestVO);
+
+    void setBuildFacilityStatus(BuildFacilityStatusVO statusVO);
+
+//    boolean checkNameUnique(BaseBuild baseBuild);
 }

+ 20 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityRelateServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.iot.service.impl;
+
+import com.usky.iot.domain.BaseBuildFacilityRelate;
+import com.usky.iot.mapper.BaseBuildFacilityRelateMapper;
+import com.usky.iot.service.BaseBuildFacilityRelateService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-07-27
+ */
+@Service
+public class BaseBuildFacilityRelateServiceImpl extends AbstractCrudService<BaseBuildFacilityRelateMapper, BaseBuildFacilityRelate> implements BaseBuildFacilityRelateService {
+
+}

+ 78 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildFacilityTypeServiceImpl.java

@@ -1,11 +1,28 @@
 package com.usky.iot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.BaseBuildFacility;
 import com.usky.iot.domain.BaseBuildFacilityType;
 import com.usky.iot.mapper.BaseBuildFacilityTypeMapper;
+import com.usky.iot.service.BaseBuildFacilityService;
 import com.usky.iot.service.BaseBuildFacilityTypeService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.BaseBuildFacilityTypeRequestVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.swing.text.html.Option;
+import java.time.LocalDateTime;
+import java.util.Objects;
+import java.util.Optional;
+
 /**
  * <p>
  * 建筑设施类型 服务实现类
@@ -16,5 +33,66 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class BaseBuildFacilityTypeServiceImpl extends AbstractCrudService<BaseBuildFacilityTypeMapper, BaseBuildFacilityType> implements BaseBuildFacilityTypeService {
+    @Autowired
+    private BaseBuildFacilityService baseBuildFacilityService;
+
+    @Override
+    public void add(BaseBuildFacilityType baseBuildFacilityType){
+        if(checkNameUnique(baseBuildFacilityType)){
+            throw new BusinessException("新增建筑设施类型'"+baseBuildFacilityType.getTypeName()+"'失败,该建筑设施类型已存在");
+        }
+        baseBuildFacilityType.setCreateBy(SecurityUtils.getUsername());
+        baseBuildFacilityType.setCreateTime(LocalDateTime.now());
+        baseBuildFacilityType.setTenantId(SecurityUtils.getTenantId());
+        this.save(baseBuildFacilityType);
+
+    }
+
+    @Override
+    public void update(BaseBuildFacilityType baseBuildFacilityType){
+        if(checkNameUnique(baseBuildFacilityType)){
+            throw new BusinessException("修改建筑设施类型'"+baseBuildFacilityType.getTypeName()+"'失败,该建筑设施类型已存在");
+        }
+        baseBuildFacilityType.setUpdateBy(SecurityUtils.getUsername());
+        baseBuildFacilityType.setUpdateTime(LocalDateTime.now());
+        this.updateById(baseBuildFacilityType);
+    }
+
+    @Override
+    public void remove(Integer id){
+        BaseBuildFacilityType info = this.getById(id);
+        Optional.ofNullable(info).orElseThrow(() -> new BusinessException("该建筑设备类型不存在"));
+
+        LambdaQueryWrapper<BaseBuildFacility> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuildFacility::getFacilityType,info.getTypeCode())
+                .eq(BaseBuildFacility::getDeleteFlag,0);
+        int count = baseBuildFacilityService.count(queryWrapper);
+        if(count > 0){
+            throw new BusinessException("有建筑设施使用该建筑设施类型,不能删除");
+        }
+
+        this.removeById(id);
+    }
+
+    @Override
+    public CommonPage<BaseBuildFacilityType> page(BaseBuildFacilityTypeRequestVO requestVO){
+        IPage<BaseBuildFacilityType> page = new Page<>(requestVO.getCurrent(),requestVO.getSize());
+        LambdaQueryWrapper<BaseBuildFacilityType> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.like(StringUtils.isNotBlank(requestVO.getTypeCode()),BaseBuildFacilityType::getTypeCode,requestVO.getTypeCode())
+                .like(StringUtils.isNotBlank(requestVO.getTypeName()),BaseBuildFacilityType::getTypeName,requestVO.getTypeName())
+                .orderByDesc(BaseBuildFacilityType::getId);
+        page = this.page(page,queryWrapper);
+
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getSize(),page.getCurrent());
+    }
+
+    @Override
+    public boolean checkNameUnique(BaseBuildFacilityType baseBuildFacilityType){
+        Integer id = null == baseBuildFacilityType.getId()?-1:baseBuildFacilityType.getId();
+        LambdaQueryWrapper<BaseBuildFacilityType> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuildFacilityType::getTypeName,baseBuildFacilityType.getTypeName());
+        BaseBuildFacilityType one = this.getOne(queryWrapper);
+        return null != one && !Objects.equals(one.getId(),id);
+    }
 
 }

+ 171 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildServiceImpl.java

@@ -1,10 +1,35 @@
 package com.usky.iot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.exception.BusinessException;
+import com.usky.common.security.utils.SecurityUtils;
 import com.usky.iot.domain.BaseBuild;
+import com.usky.iot.domain.BaseBuildFacilityRelate;
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.iot.mapper.BaseBuildMapper;
+import com.usky.iot.service.BaseBuildFacilityRelateService;
 import com.usky.iot.service.BaseBuildService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.BaseFacilityTypeService;
+import com.usky.iot.service.BaseGgpFacilityService;
+import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
+import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
+import com.usky.iot.service.vo.BuildFacilityStatusVO;
+import org.apache.tomcat.jni.Local;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import sun.security.util.Length;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.util.*;
 
 /**
  * <p>
@@ -17,4 +42,150 @@ import org.springframework.stereotype.Service;
 @Service
 public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, BaseBuild> implements BaseBuildService {
 
+    @Autowired
+    private BaseBuildFacilityRelateService baseBuildFacilityRelateService;
+
+    @Autowired
+    private BaseGgpFacilityService baseGgpFacilityService;
+
+    @Autowired
+    private BaseFacilityTypeService baseFacilityTypeService;
+
+    @Override
+    public void add(BaseBuild baseBuild){
+//        if(checkNameUnique(baseBuild)){
+//            throw new BusinessException("新增建筑名称"+baseBuild.getBuildName()+"失败,该建筑名称已存在");
+//        }
+        baseBuild.setBuildNum("jz-"+new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime()));
+        baseBuild.setCreateBy(SecurityUtils.getUsername());
+        baseBuild.setCreateTime(LocalDateTime.now());
+        baseBuild.setTenantId(SecurityUtils.getTenantId());
+        this.save(baseBuild);
+
+    }
+
+    @Override
+    public void update(BaseBuild baseBuild){
+//        if(checkNameUnique(baseBuild)){
+//            throw new BusinessException("修改建筑名称"+baseBuild.getBuildName()+"失败,该建筑名称已存在");
+//
+//        }
+
+        baseBuild.setUpdateBy(SecurityUtils.getUsername());
+        baseBuild.setUpdateTime(LocalDateTime.now());
+        this.updateById(baseBuild);
+    }
+
+    @Override
+    public void remove(Integer id){
+        BaseBuild baseBuild = this.getById(id);
+        Optional.ofNullable(baseBuild).orElseThrow(() -> new BusinessException("该建筑不存在"));
+
+        LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuildFacilityRelate::getBuildId,baseBuild.getBuildNum());
+        Integer count = baseBuildFacilityRelateService.count(queryWrapper);
+        if(count > 0){
+            throw new BusinessException("该建筑下面有关联建筑设施,不能删除");
+        }
+        this.removeById(id);
+
+    }
+
+    @Override
+    public List<BaseBuild> dataList(){
+        LambdaQueryWrapper<BaseBuild> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuild::getDeleteFlag,0)
+            .eq(BaseBuild::getTenantId,SecurityUtils.getTenantId());
+        List<BaseBuild> list = this.list(queryWrapper);
+        if(CollectionUtils.isNotEmpty(list)){
+            for(int i=0;i<list.size();i++){
+                LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.eq(BaseBuildFacilityRelate::getBuildId,list.get(i).getBuildNum());
+                Integer count = baseBuildFacilityRelateService.count(queryWrapper1);
+                list.get(i).setBuildFacilityCount(count);
+            }
+        }
+
+        return list;
+    }
+
+    @Override
+    public CommonPage<BuildFacilityRelateResponeVO> buildFacilityRelateList(BuildFacilityRelateRequestVO requestVO){
+        List<BuildFacilityRelateResponeVO> list = new ArrayList<>();
+        IPage<BaseGgpFacility> page = new Page<>(requestVO.getCurrent(),requestVO.getSize());
+        LambdaQueryWrapper<BaseGgpFacility> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.like(StringUtils.isNotBlank(requestVO.getFacilityNum()),BaseGgpFacility::getFacilityNum,requestVO.getFacilityNum())
+                .eq(requestVO.getFacilityType() != null,BaseGgpFacility::getFacilityType,requestVO.getFacilityType())
+                .eq(BaseGgpFacility::getTenantId,SecurityUtils.getTenantId());
+        page = baseGgpFacilityService.page(page,queryWrapper);
+        if(CollectionUtils.isNotEmpty(page.getRecords())){
+            for(int i=0;i<page.getRecords().size();i++){
+                BuildFacilityRelateResponeVO responeVO = new BuildFacilityRelateResponeVO();
+                responeVO.setBuildId(requestVO.getBuildId());
+                responeVO.setFacilityNum(page.getRecords().get(i).getFacilityNum());
+                responeVO.setFacilityName(page.getRecords().get(i).getFacilityName());
+
+                LambdaQueryWrapper<BaseFacilityType> queryWrapper1 = Wrappers.lambdaQuery();
+                queryWrapper1.eq(BaseFacilityType::getTypeCode,page.getRecords().get(i).getFacilityType());
+                BaseFacilityType one = baseFacilityTypeService.getOne(queryWrapper1);
+                responeVO.setFacilityType(one.getTypeName());
+
+                responeVO.setAddress(page.getRecords().get(i).getAddress());
+
+                if(page.getRecords().get(i).getId().equals(requestVO.getBuildFacilityId())){
+                    responeVO.setStatus(1);
+                }else{
+                    responeVO.setStatus(0);
+                }
+                list.add(responeVO);
+            }
+        }
+        return new CommonPage<>(list,page.getTotal(),page.getSize(),page.getCurrent());
+    }
+
+    @Override
+    public void setBuildFacilityStatus(BuildFacilityStatusVO statusVO){
+        BaseBuild baseBuild = new BaseBuild();
+
+        if(statusVO.getStatus() == 1){
+            LambdaQueryWrapper<BaseBuild> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.eq(BaseBuild::getDeleteFlag,0)
+                    .eq(BaseBuild::getId,statusVO.getBuildId())
+                    .eq(BaseBuild::getTenantId,SecurityUtils.getTenantId());
+            BaseBuild one = this.getOne(queryWrapper);
+
+            if(one.getFacilityId() != null && (""+one.getFacilityId()).length() > 0){
+                throw new BusinessException("绑定失败,该建筑已绑定设施");
+            }
+            LambdaQueryWrapper<BaseGgpFacility> queryWrapper1 = Wrappers.lambdaQuery();
+            queryWrapper1.like(BaseGgpFacility::getFacilityNum,statusVO.getFacilityNum())
+                    .eq(BaseGgpFacility::getTenantId,SecurityUtils.getTenantId());
+            BaseGgpFacility one1 = baseGgpFacilityService.getOne(queryWrapper1);
+
+            baseBuild.setId(statusVO.getBuildId());
+            baseBuild.setFacilityId(one1.getId());
+        }else{
+            baseBuild.setId(statusVO.getBuildId());
+            baseBuild.setFacilityId(null);
+        }
+        this.updateById(baseBuild);
+
+
+
+    }
+
+//    @Override
+//    public boolean checkNameUnique(BaseBuild baseBuild){
+//        Integer id = null == baseBuild.getId()?-1:baseBuild.getId();
+//        LambdaQueryWrapper<BaseBuild> queryWrapper = Wrappers.lambdaQuery();
+//        queryWrapper.eq(BaseBuild::getBuildName,baseBuild.getBuildName())
+//                .eq(BaseBuild::getDeleteFlag,0)
+//                .eq(BaseBuild::getTenantId,SecurityUtils.getTenantId());
+//        BaseBuild one = this.getOne(queryWrapper);
+//        return null != one && !Objects.equals(one.getId(),id);
+//    }
 }
+
+
+
+

+ 4 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java

@@ -52,8 +52,8 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
     private BaseFacilityBuildService baseFacilityBuildService;
     @Autowired
     private DmpDeviceInfoService dmpDeviceInfoService;
-    @Autowired
-    private BaseBuildService baseBuildService;
+//    @Autowired
+//    private BaseBuildService baseBuildService;
     @Autowired
     private BaseFacilityTypeMapper baseFacilityTypeMapper;
     @Autowired
@@ -269,14 +269,14 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
                             .in(BaseBuild::getId, buildIdList)
                             .eq(BaseBuild::getBuildNum, buildNum)
                             .eq(BaseBuild::getDeleteFlag,0);
-                    page = baseBuildService.page(page,queryWrapper1);
+//                    page = baseBuildService.page(page,queryWrapper1);
                 }else {
                     LambdaQueryWrapper<BaseBuild> queryWrapper1 = Wrappers.lambdaQuery();
                     queryWrapper1.select(BaseBuild::getId, BaseBuild::getBuildNum,
                             BaseBuild::getBuildName, BaseBuild::getAddress)
                             .in(BaseBuild::getId, buildIdList)
                             .eq(BaseBuild::getDeleteFlag,0);
-                    page = baseBuildService.page(page,queryWrapper1);
+//                    page = baseBuildService.page(page,queryWrapper1);
                 }
             }
         }

+ 25 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseBuildFacilityTypeRequestVO.java

@@ -0,0 +1,25 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseBuildFacilityTypeRequestVO {
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 类型编码
+     */
+    private String typeCode;
+
+    /**
+     * 类型名称
+     */
+    private String typeName;
+}

+ 35 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityRelateRequestVO.java

@@ -0,0 +1,35 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BuildFacilityRelateRequestVO {
+    /**
+     * 建筑id
+     */
+    private Integer buildId;
+
+    /**
+     * 建筑信息表-设施ID
+     */
+    private Integer buildFacilityId;
+
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 设施编号
+     */
+    private String facilityNum;
+
+    /**
+     * 设施类型
+     */
+    private Integer facilityType;
+}

+ 37 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityRelateResponeVO.java

@@ -0,0 +1,37 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BuildFacilityRelateResponeVO {
+
+    /**
+     * 建筑id
+     */
+    private Integer buildId;
+
+    /**
+     * 设施编号
+     */
+    private String facilityNum;
+
+    /**
+     * 设施名称
+     */
+    private String facilityName;
+
+    /**
+     * 设施类型
+     */
+    private String facilityType;
+
+    /**
+     * 设施地址
+     */
+    private String address;
+
+    /**
+     * 绑定状态(0 解绑,1 绑定)
+     */
+    private Integer status;
+}

+ 21 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BuildFacilityStatusVO.java

@@ -0,0 +1,21 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BuildFacilityStatusVO {
+    /**
+     * 建筑id
+     */
+    private Integer buildId;
+
+    /**
+     * 设施编号
+     */
+    private String facilityNum;
+
+    /**
+     * 绑定状态(0 解绑,1 绑定)
+     */
+    private Integer status;
+}

+ 14 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseBuildFacilityRelateMapper.xml

@@ -0,0 +1,14 @@
+<?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.usky.iot.mapper.BaseBuildFacilityRelateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.BaseBuildFacilityRelate">
+        <id column="id" property="id" />
+        <result column="build_id" property="buildId" />
+        <result column="facility_id" property="facilityId" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>