Browse Source

地理设施类型查询

hanzhengyi 1 year ago
parent
commit
c2ab7ccaff
15 changed files with 569 additions and 4 deletions
  1. 4 0
      service-iot/service-iot-biz/pom.xml
  2. 4 3
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/MybatisGeneratorUtils.java
  3. 41 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityTypeController.java
  4. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseGgpFacilityController.java
  5. 93 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityType.java
  6. 23 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseFacilityTypeMapper.java
  7. 25 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseFacilityTypeService.java
  8. 5 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseGgpFacilityService.java
  9. 80 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityTypeServiceImpl.java
  10. 43 1
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java
  11. 94 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityExportVo.java
  12. 4 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityRequest.java
  13. 36 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeNumVO.java
  14. 23 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeVO.java
  15. 73 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityTypeMapper.xml

+ 4 - 0
service-iot/service-iot-biz/pom.xml

@@ -37,6 +37,10 @@
             <artifactId>poi-ooxml</artifactId>
             <version>4.1.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>ruoyi-common-core</artifactId>
+        </dependency>
 
 
     </dependencies>

+ 4 - 3
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/MybatisGeneratorUtils.java

@@ -33,7 +33,7 @@ public class MybatisGeneratorUtils {
         projectPath+="/"+model;
         gc.setOutputDir(projectPath+ "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
         //修改为自己的名字
-        gc.setAuthor("ya"); //设置作者
+        gc.setAuthor("han"); //设置作者
         gc.setOpen(false);
         gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
         gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
@@ -43,7 +43,8 @@ public class MybatisGeneratorUtils {
         //2、数据源配置
         //修改数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://172.16.120.165:3306/usky-fire?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+        dsc.setUrl("jdbc:mysql://172.16.120.165:3306/usky-cloud?useUnicode=true&serverTimezone=GMT&useSSL=false" +
+                "&characterEncoding=utf8");
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername("usky");
         dsc.setPassword("Yt#75Usky");
@@ -71,7 +72,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("base_ggp_facility");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("base_facility_type");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 41 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityTypeController.java

@@ -0,0 +1,41 @@
+package com.usky.iot.controller.web;
+
+
+import com.usky.common.core.bean.ApiResult;
+import com.usky.iot.service.BaseFacilityTypeService;
+import com.usky.iot.service.BaseGgpFacilityService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设施类型 前端控制器
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+@RestController
+@RequestMapping("/baseFacilityType")
+public class BaseFacilityTypeController {
+
+    @Autowired
+    private BaseFacilityTypeService baseFacilityTypeService;
+    /**
+     * 设施类型信息查询
+     *
+     * @return
+     */
+    @PostMapping("/typeInfo")
+    public ApiResult<List<BaseGgpFacilityTypeVO>> typeInfo() {
+        return ApiResult.success(baseFacilityTypeService.typeInfo());
+    }
+}
+

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

@@ -1,16 +1,24 @@
 package com.usky.iot.controller.web;
 
 
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.log.annotation.Log;
 import com.usky.common.log.enums.BusinessType;
 import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.iot.service.BaseGgpFacilityService;
+import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import com.usky.iot.service.vo.DmpDeviceInfoRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
 /**
  * <p>
  * 地理信息 前端控制器
@@ -72,5 +80,18 @@ public class BaseGgpFacilityController {
         return ApiResult.success();
     }
 
+    /**
+     * 导出
+     * @param baseGgpFacilityRequest
+     * @param response
+     * @throws IOException
+     */
+    @PostMapping("/export")
+    public void export(@RequestBody BaseGgpFacilityRequest baseGgpFacilityRequest, HttpServletResponse response) throws IOException {
+        List<BaseGgpFacilityExportVo> list = baseGgpFacilityService.recordLsitExport(baseGgpFacilityRequest);
+        ExcelUtil<BaseGgpFacilityExportVo> util = new ExcelUtil<BaseGgpFacilityExportVo>(BaseGgpFacilityExportVo.class);
+        util.exportExcel(response, list, "地理设施", "地理设施");
+    }
+
 }
 

+ 93 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityType.java

@@ -0,0 +1,93 @@
+package com.usky.iot.domain;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 设施类型
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseFacilityType implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Integer id;
+
+    /**
+     * 类型编码
+     */
+    private String typeCode;
+
+    /**
+     * 类型简称
+     */
+    private String typeAbbrevia;
+
+    /**
+     * 类型名称
+     */
+    private String typeName;
+
+    /**
+     * 类型所属领域
+     */
+    private String typeDomain;
+
+    /**
+     * 类型图片路径
+     */
+    private String typeImg;
+
+    /**
+     * 类型_表现形式
+     */
+    private Integer typeGuise;
+
+    /**
+     * 数据字段
+     */
+    private String dataField;
+
+    /**
+     * 描述
+     */
+    private String typeDesc;
+
+    /**
+     * 创建人
+     */
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdTime;
+
+    /**
+     * 更新人
+     */
+    private String updatedBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updatedTime;
+
+    /**
+     * 租户号
+     */
+    private Integer tenantId;
+
+
+}

+ 23 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseFacilityTypeMapper.java

@@ -0,0 +1,23 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.common.mybatis.core.CrudMapper;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设施类型 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+public interface BaseFacilityTypeMapper extends CrudMapper<BaseFacilityType> {
+    List<BaseGgpFacilityTypeNumVO> typeNumList(@Param("tenantId") Integer tenantId);
+    List<BaseGgpFacilityTypeNumVO> typeNormalNumList(@Param("tenantId") Integer tenantId);
+    List<BaseGgpFacilityTypeNumVO> typeUpkeepNumList(@Param("tenantId") Integer tenantId);
+    List<BaseGgpFacilityTypeNumVO> typeCloseNumList(@Param("tenantId") Integer tenantId);
+}

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

@@ -0,0 +1,25 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 设施类型 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+public interface BaseFacilityTypeService extends CrudService<BaseFacilityType> {
+    /**
+     * 设施类型信息查询
+     * @return
+     */
+    List<BaseGgpFacilityTypeVO> typeInfo();
+
+}

+ 5 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseGgpFacilityService.java

@@ -3,8 +3,11 @@ package com.usky.iot.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
 
+import java.util.List;
+
 /**
  * <p>
  * 地理信息 服务类
@@ -21,4 +24,6 @@ public interface BaseGgpFacilityService extends CrudService<BaseGgpFacility> {
     CommonPage<BaseGgpFacility> page(BaseGgpFacilityRequest baseGgpFacilityRequest);
 
     boolean remove(Integer id);
+
+    List<BaseGgpFacilityExportVo> recordLsitExport(BaseGgpFacilityRequest baseGgpFacilityRequest);
 }

+ 80 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityTypeServiceImpl.java

@@ -0,0 +1,80 @@
+package com.usky.iot.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.common.security.utils.SecurityUtils;
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.iot.domain.BaseGgpFacility;
+import com.usky.iot.mapper.BaseFacilityTypeMapper;
+import com.usky.iot.service.BaseFacilityTypeService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 设施类型 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+@Service
+public class BaseFacilityTypeServiceImpl extends AbstractCrudService<BaseFacilityTypeMapper, BaseFacilityType> implements BaseFacilityTypeService {
+    @Override
+    public List<BaseGgpFacilityTypeVO> typeInfo() {
+        List<BaseGgpFacilityTypeVO> list = new ArrayList<>();
+        LambdaQueryWrapper<BaseFacilityType> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseFacilityType::getTenantId, 1);
+        List<BaseFacilityType> list1 = this.list(queryWrapper);
+        if (CollectionUtils.isNotEmpty(list1)) {
+            List<Integer> typeIdList = new ArrayList<>();
+            for (int i = 0; i < list1.size(); i++) {
+                typeIdList.add(list1.get(i).getId());
+            }
+            List<BaseGgpFacilityTypeNumVO> list2 = new ArrayList<>();
+            List<BaseGgpFacilityTypeNumVO> list3 = new ArrayList<>();
+            List<BaseGgpFacilityTypeNumVO> list4 = new ArrayList<>();
+            List<BaseGgpFacilityTypeNumVO> list5 = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(typeIdList)) {
+                Integer[] a2 = typeIdList.toArray(new Integer[typeIdList.size()]);
+                list2 = baseMapper.typeNumList(1);
+                list3 = baseMapper.typeNormalNumList(1);
+                list4 = baseMapper.typeUpkeepNumList(1);
+                list5 = baseMapper.typeCloseNumList(1);
+            }
+            BaseGgpFacilityTypeVO baseGgpFacilityTypeVO = new BaseGgpFacilityTypeVO();
+            baseGgpFacilityTypeVO.setTypeNum(3);
+            List<BaseGgpFacilityTypeNumVO> list8 = new ArrayList<>();
+            if (CollectionUtils.isNotEmpty(list2)) {
+                for (int i = 0; i < list2.size(); i++) {
+                    for (int j = 0; j < list3.size(); j++) {
+                        if (list2.get(i).getId().equals(list3.get(j).getId())){
+                            list2.get(i).setNormalFacilityNum(list3.get(j).getNormalFacilityNum());
+                        }
+                    }
+                    for (int k = 0; k < list4.size(); k++) {
+                        if (list2.get(i).getId().equals(list4.get(k).getId())){
+                            list2.get(i).setUpkeepFacilityNum(list4.get(k).getUpkeepFacilityNum());
+                        }
+                    }
+                    for (int g = 0; g < list5.size(); g++) {
+                        if (list2.get(i).getId().equals(list5.get(g).getId())){
+                            list2.get(i).setCloseFacilityNum(list5.get(g).getCloseFacilityNum());
+                        }
+                    }
+                    list8.add(list2.get(i));
+                }
+                baseGgpFacilityTypeVO.setBaseGgpFacilityTypeNumVO(list8);
+                list.add(baseGgpFacilityTypeVO);
+            }
+        }
+        return list;
+    }
+}

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

@@ -11,10 +11,15 @@ import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.iot.mapper.BaseGgpFacilityMapper;
 import com.usky.iot.service.BaseGgpFacilityService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
+import com.usky.system.model.LoginUser;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -48,7 +53,10 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
                 .like(StringUtils.isNotBlank(piRequest.getFacilityName()),BaseGgpFacility::getFacilityName,
                         piRequest.getFacilityName())
                 .eq(StringUtils.isNotBlank(piRequest.getFacilityNum()),BaseGgpFacility::getFacilityNum,piRequest.getFacilityNum())
-                .eq(null != piRequest.getId(),BaseGgpFacility::getId,piRequest.getId());
+                .eq(null != piRequest.getFacilityType(),BaseGgpFacility::getFacilityType,piRequest.getFacilityType())
+                .eq(null != piRequest.getId(),BaseGgpFacility::getId,piRequest.getId())
+                .eq(BaseGgpFacility::getTenantId, SecurityUtils.getTenantId())
+                .orderByDesc(BaseGgpFacility::getId);
         page = this.page(page,lambdaQuery);
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
     }
@@ -57,4 +65,38 @@ public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacil
     public boolean remove(Integer id) {
         return this.removeById(id);
     }
+
+    @Override
+    public List<BaseGgpFacilityExportVo> recordLsitExport(BaseGgpFacilityRequest exRequest) {
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String userType = null;
+        if (loginUser != null && !"".equals(loginUser)) {
+            userType = loginUser.getUserType();
+        }
+        LambdaQueryWrapper<BaseGgpFacility> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(BaseGgpFacility::getTenantId, SecurityUtils.getTenantId())
+                .like(StringUtils.isNotBlank(exRequest.getFacilityName()), BaseGgpFacility::getFacilityName, exRequest.getFacilityName())
+                .eq(StringUtils.isNotBlank(exRequest.getFacilityNum()), BaseGgpFacility::getFacilityNum, exRequest.getFacilityNum())
+                .eq(null != exRequest.getFacilityType(),BaseGgpFacility::getFacilityType,exRequest.getFacilityType())
+                .orderByDesc(BaseGgpFacility::getId);
+        List<BaseGgpFacility> baseGgpFacilityList = this.list(queryWrapper);
+        List<BaseGgpFacilityExportVo> list = new ArrayList<>();
+        for (int i = 0; i < baseGgpFacilityList.size(); i++) {
+            BaseGgpFacilityExportVo baseGgpFacilityExportVo = new BaseGgpFacilityExportVo();
+            baseGgpFacilityExportVo.setXh(i + 1);
+            baseGgpFacilityExportVo.setId(baseGgpFacilityList.get(i).getId());
+            baseGgpFacilityExportVo.setFacilityNum(baseGgpFacilityList.get(i).getFacilityNum());
+            baseGgpFacilityExportVo.setFacilityType(baseGgpFacilityList.get(i).getFacilityType());
+            baseGgpFacilityExportVo.setFacilityName(baseGgpFacilityList.get(i).getFacilityName());
+            baseGgpFacilityExportVo.setAddress(baseGgpFacilityList.get(i).getAddress());
+            baseGgpFacilityExportVo.setImagesUrl(baseGgpFacilityList.get(i).getImagesUrl());
+            baseGgpFacilityExportVo.setContact(baseGgpFacilityList.get(i).getContact());
+            baseGgpFacilityExportVo.setContactPhone(baseGgpFacilityList.get(i).getContactPhone());
+            baseGgpFacilityExportVo.setStatus(baseGgpFacilityList.get(i).getStatus());
+            baseGgpFacilityExportVo.setCreateTime(baseGgpFacilityList.get(i).getCreateTime().format(df));
+            list.add(baseGgpFacilityExportVo);
+        }
+        return list;
+    }
 }

+ 94 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityExportVo.java

@@ -0,0 +1,94 @@
+package com.usky.iot.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.core.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 地理设施表
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BaseGgpFacilityExportVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 序号
+     */
+    @Excel(name = "序号")
+    private Integer xh;
+
+    /**
+     * 设施编号
+     */
+    @Excel(name = "设施编号")
+    private String facilityNum;
+
+    /**
+     * 设施类型
+     */
+    @Excel(name = "设施类型")
+    private Integer facilityType;
+
+    /**
+     * 设施名称
+     */
+    @Excel(name = "设施名称")
+    private String facilityName;
+
+    /**
+     * 设施地址
+     */
+    @Excel(name = "设施地址")
+    private String address;
+
+    /**
+     * 图片地址URL
+     */
+    @Excel(name = "设施图片")
+    private String imagesUrl;
+
+    /**
+     * 联系人
+     */
+    @Excel(name = "联系人")
+    private String contact;
+
+    /**
+     * 联系方式
+     */
+    @Excel(name = "联系方式")
+    private String contactPhone;
+
+    /**
+     * 设施状态
+     */
+    @Excel(name = "设施状态", readConverterExp = "0=正常,1=维修,2=关闭")
+    private Integer status;
+
+    /**
+     * 开始时间
+     */
+    @Excel(name = "开始时间")
+    private String createTime;
+
+
+}

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityRequest.java

@@ -22,6 +22,10 @@ public class BaseGgpFacilityRequest {
      * 设施编号
      */
     private String facilityNum;
+    /**
+     * 设施类型
+     */
+    private Integer facilityType;
     /**
      * id
      */

+ 36 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeNumVO.java

@@ -0,0 +1,36 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+@Data
+public class BaseGgpFacilityTypeNumVO {
+
+    /**
+     * 设施类型名称
+     */
+    private String typeName;
+    /**
+     * 设施类型图片
+     */
+    private String typeImg;
+    /**
+     * 设施类型对应设施数量
+     */
+    private Integer typeFacilityNum;
+    /**
+     * 设施类型对应正常设施数量
+     */
+    private Integer normalFacilityNum;
+    /**
+     * 设施类型对应维修设施数量
+     */
+    private Integer upkeepFacilityNum;
+    /**
+     * 设施类型对应关闭设施数量
+     */
+    private Integer closeFacilityNum;
+    /**
+     * id
+     */
+    private Integer id;
+}

+ 23 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeVO.java

@@ -0,0 +1,23 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BaseGgpFacilityTypeVO {
+
+    /**
+     * 设施类型数
+     */
+    private Integer typeNum;
+    /**
+     * 设施总数
+     */
+    private Integer facilityNum;
+
+    /**
+     * 设施类型集合
+     */
+    private List<BaseGgpFacilityTypeNumVO> baseGgpFacilityTypeNumVO;
+}

+ 73 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityTypeMapper.xml

@@ -0,0 +1,73 @@
+<?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.BaseFacilityTypeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.BaseFacilityType">
+        <result column="id" property="id" />
+        <result column="type_code" property="typeCode" />
+        <result column="type_abbrevia" property="typeAbbrevia" />
+        <result column="type_name" property="typeName" />
+        <result column="type_domain" property="typeDomain" />
+        <result column="type_img" property="typeImg" />
+        <result column="type_guise" property="typeGuise" />
+        <result column="data_field" property="dataField" />
+        <result column="type_desc" property="typeDesc" />
+        <result column="created_by" property="createdBy" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_by" property="updatedBy" />
+        <result column="updated_time" property="updatedTime" />
+        <result column="tenant_id" property="tenantId" />
+    </resultMap>
+    <select id="typeNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
+        SELECT d.id,d.type_name as typeName,d.type_img as typeImg,IF(facility_type IS NULL,0,COUNT(*)) AS
+        typeFacilityNum
+        FROM base_facility_type d
+        LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
+        <where>
+            <if test="tenantId != null and tenantId != ''">
+                and d.tenant_id = #{tenantId}
+            </if>
+        </where>
+        GROUP BY d.id
+    </select>
+    <select id="typeNormalNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
+        SELECT d.id,IF(facility_type IS NULL,0,COUNT(*)) AS
+        normalFacilityNum
+        FROM base_facility_type d
+        LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
+        <where>
+            <if test="tenantId != null and tenantId != ''">
+                and d.tenant_id = #{tenantId}
+            </if>
+                and e.status = 0
+        </where>
+        GROUP BY d.id
+    </select>
+    <select id="typeUpkeepNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
+        SELECT d.id,IF(facility_type IS NULL,0,COUNT(*)) AS
+        normalFacilityNum
+        FROM base_facility_type d
+        LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
+        <where>
+            <if test="tenantId != null and tenantId != ''">
+                and d.tenant_id = #{tenantId}
+            </if>
+            and e.status = 1
+        </where>
+        GROUP BY d.id
+    </select>
+    <select id="typeCloseNumList" resultType="com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO">
+        SELECT d.id,IF(facility_type IS NULL,0,COUNT(*)) AS
+        normalFacilityNum
+        FROM base_facility_type d
+        LEFT JOIN base_ggp_facility e ON e.facility_type = d.id
+        <where>
+            <if test="tenantId != null and tenantId != ''">
+                and d.tenant_id = #{tenantId}
+            </if>
+            and e.status = 2
+        </where>
+        GROUP BY d.id
+    </select>
+</mapper>