james пре 1 година
родитељ
комит
b3f96ed3e7

+ 28 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildController.java

@@ -4,6 +4,8 @@ package com.usky.iot.controller.web;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseBuild;
+import com.usky.iot.domain.BaseBuildFacility;
+import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.iot.service.BaseBuildService;
 import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
 import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
@@ -89,6 +91,32 @@ public class BaseBuildController {
         baseBuildService.setBuildFacilityStatus(statusVO);
         return ApiResult.success();
     }
+
+    /**
+     * 建筑设施关联查询
+     *
+     * @param id  主键ID
+     * @return
+     */
+    @GetMapping("buildFacilityInfo")
+    public ApiResult<List<Object>> buildFacilityInfo(@RequestParam(value = "id") Integer id) {
+        return ApiResult.success(baseBuildService.buildFacilityInfo(id));
+    }
+
+    /**
+     * 类型设施关联查询
+     *
+     * @param id  主键ID
+     * @param floor  所属楼层
+     * @param typeCode  类型编码
+     * @return
+     */
+    @GetMapping("typeFacilityInfo")
+    public ApiResult<List<BaseBuildFacility>> typeFacilityInfo(@RequestParam(value = "id") Integer id,
+                                                               @RequestParam(value = "floor") String floor,
+                                                               @RequestParam(value = "typeCode") String typeCode) {
+        return ApiResult.success(baseBuildService.typeFacilityInfo(id,floor,typeCode));
+    }
 }
 
 

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuildFacility.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -116,11 +118,13 @@ public class BaseBuildFacility implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     /**
      * 更新时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     /**

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

@@ -3,6 +3,7 @@ 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.domain.BaseBuildFacility;
 import com.usky.iot.service.vo.BuildFacilityRelateRequestVO;
 import com.usky.iot.service.vo.BuildFacilityRelateResponeVO;
 import com.usky.iot.service.vo.BuildFacilityStatusVO;
@@ -32,5 +33,21 @@ public interface BaseBuildService extends CrudService<BaseBuild> {
 
     void setBuildFacilityStatus(BuildFacilityStatusVO statusVO);
 
+    /**
+     * 建筑设施关联查询
+     *
+     * @param id  主键ID
+     */
+    List<Object> buildFacilityInfo(Integer id);
+
+    /**
+     * 类型设施关联查询
+     *
+     * @param id  主键ID
+     * @param floor  所属楼层
+     * @param typeCode  类型编码
+     */
+    List<BaseBuildFacility> typeFacilityInfo(Integer id, String floor, String typeCode);
+
 //    boolean checkNameUnique(BaseBuild baseBuild);
 }

+ 98 - 8
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildServiceImpl.java

@@ -1,6 +1,7 @@
 package com.usky.iot.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -9,16 +10,10 @@ 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.domain.*;
 import com.usky.iot.mapper.BaseBuildMapper;
-import com.usky.iot.service.BaseBuildFacilityRelateService;
-import com.usky.iot.service.BaseBuildService;
+import com.usky.iot.service.*;
 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;
@@ -51,6 +46,12 @@ public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, B
     @Autowired
     private BaseFacilityTypeService baseFacilityTypeService;
 
+    @Autowired
+    private BaseBuildFacilityService baseBuildFacilityService;
+
+    @Autowired
+    private BaseBuildFacilityTypeService baseBuildFacilityTypeService;
+
     @Override
     public void add(BaseBuild baseBuild){
 //        if(checkNameUnique(baseBuild)){
@@ -180,6 +181,95 @@ public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, B
 
     }
 
+    @Override
+    public List<Object> buildFacilityInfo(Integer id) {
+        List<Object> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuildFacilityRelate::getBuildId,id);
+        List<BaseBuildFacilityRelate> baseBuildFacilityList = baseBuildFacilityRelateService.list(queryWrapper);
+        if (CollectionUtils.isNotEmpty(baseBuildFacilityList)) {
+            List<Integer> facilityIdList = new ArrayList<>();
+            for (int i = 0; i < baseBuildFacilityList.size(); i++) {
+                facilityIdList.add(baseBuildFacilityList.get(i).getFacilityId());
+            }
+            QueryWrapper<BaseBuildFacility> query2 = Wrappers.query();
+            query2.select("floor as floor","count(id) as count","facility_type as facilityType")
+                    .in("id",facilityIdList)
+                    .eq("delete_flag",0)
+                    .groupBy("floor","facility_type");
+            List<Map<String, Object>> baseBuildFacilityList1 = baseBuildFacilityService.listMaps(query2);
+            QueryWrapper<BaseBuildFacility> query3 = Wrappers.query();
+            query3.select("floor as floor","count(id) as count")
+                    .in("id",facilityIdList)
+                    .eq("delete_flag",0)
+                    .groupBy("floor");
+            List<Map<String, Object>> baseBuildFacilityList2 = baseBuildFacilityService.listMaps(query3);
+            QueryWrapper<BaseBuildFacility> query4 = Wrappers.query();
+            query4.select("facility_type as facilityType","count(id) as count")
+                    .in("id",facilityIdList)
+                    .eq("delete_flag",0)
+                    .groupBy("facility_type");
+            List<Map<String, Object>> baseBuildFacilityList3 = baseBuildFacilityService.listMaps(query4);
+            List<String> facilityTypeList = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(baseBuildFacilityList3)) {
+                for (int l = 0; l < baseBuildFacilityList3.size(); l++) {
+                    facilityTypeList.add(baseBuildFacilityList3.get(l).get("facilityType").toString());
+                }
+            }
+            LambdaQueryWrapper<BaseBuildFacilityType> queryWrapper1 = Wrappers.lambdaQuery();
+            queryWrapper1.in(BaseBuildFacilityType::getTypeCode,facilityTypeList);
+            List<BaseBuildFacilityType> baseBuildFacilityType = baseBuildFacilityTypeService.list(queryWrapper1);
+            if (CollectionUtils.isNotEmpty(baseBuildFacilityList2)) {
+                for (int j = 0; j < baseBuildFacilityList2.size(); j++){
+                    Map<String, Object> map1 = new HashMap<>();
+                    map1.put("floor", baseBuildFacilityList2.get(j).get("floor"));
+                    List<Object> list1 = new ArrayList<>();
+                    if (CollectionUtils.isNotEmpty(baseBuildFacilityList1)) {
+                        for (int k = 0; k < baseBuildFacilityList1.size(); k++){
+                            Map<String, Object> map2 = new HashMap<>();
+                            if (baseBuildFacilityList2.get(j).get("floor").equals(baseBuildFacilityList1.get(k).get(
+                                    "floor"))){
+                                map2.put("facilityType", baseBuildFacilityList1.get(k).get("facilityType"));
+                                map2.put("count", baseBuildFacilityList1.get(k).get("count"));
+                                if (CollectionUtils.isNotEmpty(baseBuildFacilityType)) {
+                                    for (int m = 0; m < baseBuildFacilityType.size(); m++) {
+                                        if (baseBuildFacilityList1.get(k).get("facilityType").equals(baseBuildFacilityType.get(m).getTypeCode())){
+                                            map2.put("typeImg", baseBuildFacilityType.get(m).getTypeImg());
+                                        }
+                                    }
+                                }
+                                list1.add(map2);
+                            }
+                        }
+                    }
+                    map1.put("facilityList", list1);
+                    list.add(map1);
+                }
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public List<BaseBuildFacility> typeFacilityInfo(Integer id, String floor, String typeCode) {
+        LambdaQueryWrapper<BaseBuildFacilityRelate> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseBuildFacilityRelate::getBuildId,id);
+        List<BaseBuildFacilityRelate> baseBuildFacilityList = baseBuildFacilityRelateService.list(queryWrapper);
+        List<Integer> facilityIdList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(baseBuildFacilityList)) {
+            for (int i = 0; i < baseBuildFacilityList.size(); i++) {
+                facilityIdList.add(baseBuildFacilityList.get(i).getFacilityId());
+            }
+        }
+        LambdaQueryWrapper<BaseBuildFacility> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.in(BaseBuildFacility::getId,facilityIdList)
+                .eq(BaseBuildFacility::getFacilityType,typeCode)
+                .eq(BaseBuildFacility::getFloor,floor)
+                .eq(BaseBuildFacility::getDeleteFlag,0);
+        List<BaseBuildFacility> list = baseBuildFacilityService.list(queryWrapper1);
+        return list;
+    }
+
 //    @Override
 //    public boolean checkNameUnique(BaseBuild baseBuild){
 //        Integer id = null == baseBuild.getId()?-1:baseBuild.getId();