Browse Source

解决冲突

james 1 year ago
parent
commit
f1fb01a234
39 changed files with 1586 additions and 41 deletions
  1. 5 1
      service-iot/service-iot-biz/pom.xml
  2. 2 2
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/MybatisGeneratorUtils.java
  3. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildController.java
  4. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityBuildController.java
  5. 21 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityDeviceController.java
  6. 100 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityTypeController.java
  7. 80 2
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseGgpFacilityController.java
  8. 192 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuild.java
  9. 51 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityBuild.java
  10. 51 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityDevice.java
  11. 93 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityType.java
  12. 10 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseGgpFacility.java
  13. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseBuildMapper.java
  14. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseFacilityBuildMapper.java
  15. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseFacilityDeviceMapper.java
  16. 23 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/BaseFacilityTypeMapper.java
  17. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseBuildService.java
  18. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseFacilityBuildService.java
  19. 16 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseFacilityDeviceService.java
  20. 35 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseFacilityTypeService.java
  21. 22 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/BaseGgpFacilityService.java
  22. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseBuildServiceImpl.java
  23. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityBuildServiceImpl.java
  24. 20 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityDeviceServiceImpl.java
  25. 133 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseFacilityTypeServiceImpl.java
  26. 144 3
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/BaseGgpFacilityServiceImpl.java
  27. 94 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityExportVo.java
  28. 23 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityInfoVO.java
  29. 24 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityListVO.java
  30. 4 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityRequest.java
  31. 36 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeNumVO.java
  32. 23 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityTypeVO.java
  33. 24 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityVO.java
  34. 53 33
      service-iot/service-iot-biz/src/main/resources/logback.xml
  35. 42 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseBuildMapper.xml
  36. 14 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityBuildMapper.xml
  37. 14 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityDeviceMapper.xml
  38. 73 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityTypeMapper.xml
  39. 2 0
      service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseGgpFacilityMapper.xml

+ 5 - 1
service-iot/service-iot-biz/pom.xml

@@ -36,13 +36,17 @@
             <groupId>org.apache.poi</groupId>
             <artifactId>poi-ooxml</artifactId>
             <version>4.1.2</version>
+        </dependency>
+		<dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>ruoyi-common-core</artifactId>
         </dependency>
         <dependency>
             <groupId>com.usky</groupId>
             <artifactId>service-backend-api</artifactId>
             <version>0.0.1</version>
         </dependency>
-
+        
 
     </dependencies>
 

+ 2 - 2
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,这样设置就没有
@@ -71,7 +71,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude("dmp_device_type");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude("base_build");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 21 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseBuildController.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-06-07
+ */
+@Controller
+@RequestMapping("/baseBuild")
+public class BaseBuildController {
+
+}
+

+ 21 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityBuildController.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-06-07
+ */
+@Controller
+@RequestMapping("/baseFacilityBuild")
+public class BaseFacilityBuildController {
+
+}
+

+ 21 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/BaseFacilityDeviceController.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-06-07
+ */
+@Controller
+@RequestMapping("/baseFacilityDevice")
+public class BaseFacilityDeviceController {
+
+}
+

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

@@ -0,0 +1,100 @@
+package com.usky.iot.controller.web;
+
+
+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.BaseFacilityType;
+import com.usky.iot.service.BaseFacilityTypeService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+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());
+    }
+    /**
+     * 设施类型分页
+     * @param typeCode  类型编码
+     * @param typeName  类型名称
+     * @param current   当前页
+     * @param size     每页条数
+     * @return
+     */
+    @Log(title = "设施类型分页", businessType = BusinessType.OTHER)
+    @GetMapping("/typePage")
+    public ApiResult<CommonPage<BaseFacilityType>> typePage(@RequestParam(value = "typeCode", required = false) String typeCode,
+                                                            @RequestParam(value = "typeName", required = false) String typeName,
+                                                            @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                            @RequestParam(value = "size", required = false, defaultValue = "10") Integer size)
+    {
+        return ApiResult.success(baseFacilityTypeService.typePage(typeCode, typeName, current, size));
+    }
+
+    /**
+     * 设施类型根据ID查询
+     *
+     * @param id   单位名称
+     * @return
+     */
+    @GetMapping("typeSelect")
+    public ApiResult<List<BaseFacilityType>> typeSelect(@RequestParam(value = "id", required = false) Integer id) {
+        return ApiResult.success(baseFacilityTypeService.typeSelect(id));
+    }
+
+    /**
+     * 新增
+     * @param baseFacilityType
+     * @return
+     */
+    @PostMapping("/add")
+    public ApiResult<Void> add(@RequestBody BaseFacilityType baseFacilityType){
+        baseFacilityTypeService.add(baseFacilityType);
+        return ApiResult.success();
+    }
+
+    /**
+     * 修改
+     * @param baseFacilityType
+     * @return
+     */
+    @PutMapping("/edit")
+    public ApiResult<Void> edit(@RequestBody BaseFacilityType baseFacilityType){
+        baseFacilityTypeService.update(baseFacilityType);
+        return ApiResult.success();
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/{id}")
+    public ApiResult<Void> remove(@PathVariable("id") Integer id)
+    {
+        baseFacilityTypeService.remove(id);
+        return ApiResult.success();
+    }
+}
+

+ 80 - 2
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.BaseBuild;
 import com.usky.iot.domain.BaseGgpFacility;
+import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.service.BaseGgpFacilityService;
-import com.usky.iot.service.vo.BaseGgpFacilityRequest;
+import com.usky.iot.service.vo.*;
 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;
+import java.util.Map;
+
 /**
  * <p>
  * 地理信息 前端控制器
@@ -63,7 +71,7 @@ public class BaseGgpFacilityController {
 
 
     /**
-     * 删除记录
+     * 删除
      */
     @DeleteMapping("/{id}")
     public ApiResult<Void> remove(@PathVariable("id") Integer id)
@@ -72,5 +80,75 @@ 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, "地理设施", "地理设施");
+    }
+    /**
+     * 设施详情查询
+     *
+     * @param id  主键ID
+     * @return
+     */
+    @GetMapping("facilityInfo")
+    public ApiResult<List<BaseGgpFacility>> facilityInfo(@RequestParam(value = "id", required = false, defaultValue = "0") Integer id) {
+        return ApiResult.success(baseGgpFacilityService.facilityInfo(id));
+    }
+
+    /**
+     * 关联设备分页
+     * @param deviceId  设备ID
+     * @param id  设施主键ID
+     * @param current      当前页
+     * @param size     每页条数
+     * @return
+     */
+    @Log(title = "关联设备分页", businessType = BusinessType.OTHER)
+    @GetMapping("/deviceInfo")
+    public ApiResult<CommonPage<DmpDeviceInfo>> deviceInfo(@RequestParam(value = "deviceId", required = false) String deviceId,
+                                                           @RequestParam(value = "id") Integer id,
+                                                           @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                           @RequestParam(value = "size", required = false, defaultValue = "10") Integer size)
+    {
+        return ApiResult.success(baseGgpFacilityService.deviceInfo(deviceId, id, current, size));
+    }
+
+    /**
+     * 关联建筑分页
+     * @param buildNum  建筑编号
+     * @param id  设施主键ID
+     * @param current      当前页
+     * @param size     每页条数
+     * @return
+     */
+    @Log(title = "关联建筑分页", businessType = BusinessType.OTHER)
+    @GetMapping("/buildInfo")
+    public ApiResult<CommonPage<BaseBuild>> buildInfo(@RequestParam(value = "buildNum", required = false) String buildNum,
+                                                      @RequestParam(value = "id") Integer id,
+                                                      @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                                      @RequestParam(value = "size", required = false, defaultValue = "10") Integer size)
+    {
+        return ApiResult.success(baseGgpFacilityService.buildInfo(buildNum, id, current, size));
+    }
+
+    /**
+     * 地理信息-撒点
+     *
+     * @param baseGgpFacilityVO
+     * @return
+     */
+    @PostMapping("baseGgpFacilityList")
+    public ApiResult<List<BaseGgpFacility>> baseGgpFacilityList(@RequestBody BaseGgpFacilityVO baseGgpFacilityVO) {
+        return ApiResult.success(baseGgpFacilityService.baseGgpFacilityList(baseGgpFacilityVO));
+    }
+
 }
 

+ 192 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseBuild.java

@@ -0,0 +1,192 @@
+package com.usky.iot.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+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-06-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseBuild implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 建筑编号
+     */
+    private String buildNum;
+
+    /**
+     * 建筑名称
+     */
+    private String buildName;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 模型地址
+     */
+    private String modelAddress;
+
+    /**
+     * 地上楼层
+     */
+    private Integer aboveFloor;
+
+    /**
+     * 地下楼层
+     */
+    private Integer underFloor;
+
+    /**
+     * 建筑面积
+     */
+    private Double buildArea;
+
+    /**
+     * 占地面积
+     */
+    private Double coverArea;
+
+    /**
+     * 耐火等级
+     */
+    private Integer fireRating;
+
+    /**
+     * 使用性质
+     */
+    private Integer useCharacter;
+
+    /**
+     * 建筑结构
+     */
+    private Integer buildStructure;
+
+    /**
+     * 建筑高度
+     */
+    private Double buildHigh;
+
+    /**
+     * 建筑高度分类
+     */
+    private Integer highType;
+
+    /**
+     * 竣工年份
+     */
+    private LocalDate completeYear;
+
+    /**
+     * 安全责任人
+     */
+    private String safePerson;
+
+    /**
+     * 安全管理人
+     */
+    private String managePerson;
+
+    /**
+     * 火灾危险性
+     */
+    private Integer fireRisk;
+
+    /**
+     * 消防控制室位置
+     */
+    private String fireControlRoom;
+
+    /**
+     * 建筑立面图
+     */
+    private String buildInside;
+
+    /**
+     * 建筑平面图
+     */
+    private String buildPlan;
+
+    /**
+     * 设施ID
+     */
+    private Integer facilityId;
+
+    /**
+     * 所属联网单位ID
+     */
+    private String companyId;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    /**
+     * 更新人
+     */
+    private String updatePerson;
+
+    /**
+     * 创建人
+     */
+    private String creator;
+
+    /**
+     * 删除标识
+     */
+    private String deleteFlag;
+
+    /**
+     * 地下空间
+     */
+    private Double underSpace;
+
+    /**
+     * 防火涂层(0、无 1、有)
+     */
+    private Integer fireproofCoat;
+
+    /**
+     * 消防设施系统;0、无 1、有
+     */
+    private String fireFacilitySystem;
+
+    /**
+     * 其他系统;0、无 1、有
+     */
+    private String otherSystem;
+
+    /**
+     * 其他设施
+     */
+    private String otherFacilities;
+
+
+}

+ 51 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityBuild.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-06-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseFacilityBuild implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设施id
+     */
+    private Integer facilityId;
+
+    /**
+     * 建筑id
+     */
+    private Integer buildId;
+
+    /**
+     * 创建人
+     */
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdTime;
+
+
+}

+ 51 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseFacilityDevice.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-06-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BaseFacilityDevice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设施id
+     */
+    private Integer facilityId;
+
+    /**
+     * 设备id
+     */
+    private Integer deviceId;
+
+    /**
+     * 创建人
+     */
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdTime;
+
+
+}

+ 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;
+
+
+}

+ 10 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/BaseGgpFacility.java

@@ -162,5 +162,15 @@ public class BaseGgpFacility implements Serializable {
      */
     private String creator;
 
+    /**
+     * 详细地址
+     */
+    private String facilityAddress;
+
+    /**
+     * 设施备注
+     */
+    private String facilityDesc;
+
 
 }

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

@@ -0,0 +1,16 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.BaseBuild;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 建筑信息 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseBuildMapper extends CrudMapper<BaseBuild> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.BaseFacilityBuild;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 地理设施建筑关联表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseFacilityBuildMapper extends CrudMapper<BaseFacilityBuild> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.iot.mapper;
+
+import com.usky.iot.domain.BaseFacilityDevice;
+import com.usky.common.mybatis.core.CrudMapper;
+
+/**
+ * <p>
+ * 地理设施设备关联表 Mapper 接口
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseFacilityDeviceMapper extends CrudMapper<BaseFacilityDevice> {
+
+}

+ 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);
+}

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

@@ -0,0 +1,16 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.BaseBuild;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 建筑信息 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseBuildService extends CrudService<BaseBuild> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.BaseFacilityBuild;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 地理设施建筑关联表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseFacilityBuildService extends CrudService<BaseFacilityBuild> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.usky.iot.service;
+
+import com.usky.iot.domain.BaseFacilityDevice;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 地理设施设备关联表 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+public interface BaseFacilityDeviceService extends CrudService<BaseFacilityDevice> {
+
+}

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

@@ -0,0 +1,35 @@
+package com.usky.iot.service;
+
+import com.usky.common.core.bean.CommonPage;
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 设施类型 服务类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-06
+ */
+public interface BaseFacilityTypeService extends CrudService<BaseFacilityType> {
+    /**
+     * 设施类型信息查询
+     * @return
+     */
+    List<BaseGgpFacilityTypeVO> typeInfo();
+
+    CommonPage<BaseFacilityType> typePage(String typeCode, String typeName, Integer current, Integer size);
+
+    List<BaseFacilityType> typeSelect(Integer id);
+
+    boolean add(BaseFacilityType baseFacilityType);
+
+    void update(BaseFacilityType baseFacilityType);
+
+    boolean remove(Integer id);
+
+}

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

@@ -1,9 +1,15 @@
 package com.usky.iot.service;
 
 import com.usky.common.core.bean.CommonPage;
+import com.usky.iot.domain.BaseBuild;
 import com.usky.iot.domain.BaseGgpFacility;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.domain.DmpDeviceInfo;
+import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
+import com.usky.iot.service.vo.BaseGgpFacilityVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -21,4 +27,20 @@ public interface BaseGgpFacilityService extends CrudService<BaseGgpFacility> {
     CommonPage<BaseGgpFacility> page(BaseGgpFacilityRequest baseGgpFacilityRequest);
 
     boolean remove(Integer id);
+
+    List<BaseGgpFacilityExportVo> recordLsitExport(BaseGgpFacilityRequest baseGgpFacilityRequest);
+
+    List<BaseGgpFacility> facilityInfo(Integer id);
+
+    CommonPage<DmpDeviceInfo> deviceInfo(String deviceId,Integer id,Integer current,Integer size);
+
+    CommonPage<BaseBuild> buildInfo(String buildNum, Integer id, Integer current, Integer size);
+
+    /**
+     * 地理信息-撒点
+     *
+     * @param baseGgpFacilityVO
+     * @return
+     */
+    List<BaseGgpFacility> baseGgpFacilityList(BaseGgpFacilityVO baseGgpFacilityVO);
 }

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

@@ -0,0 +1,20 @@
+package com.usky.iot.service.impl;
+
+import com.usky.iot.domain.BaseBuild;
+import com.usky.iot.mapper.BaseBuildMapper;
+import com.usky.iot.service.BaseBuildService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 建筑信息 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+@Service
+public class BaseBuildServiceImpl extends AbstractCrudService<BaseBuildMapper, BaseBuild> implements BaseBuildService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.usky.iot.service.impl;
+
+import com.usky.iot.domain.BaseFacilityBuild;
+import com.usky.iot.mapper.BaseFacilityBuildMapper;
+import com.usky.iot.service.BaseFacilityBuildService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 地理设施建筑关联表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+@Service
+public class BaseFacilityBuildServiceImpl extends AbstractCrudService<BaseFacilityBuildMapper, BaseFacilityBuild> implements BaseFacilityBuildService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.usky.iot.service.impl;
+
+import com.usky.iot.domain.BaseFacilityDevice;
+import com.usky.iot.mapper.BaseFacilityDeviceMapper;
+import com.usky.iot.service.BaseFacilityDeviceService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 地理设施设备关联表 服务实现类
+ * </p>
+ *
+ * @author han
+ * @since 2023-06-07
+ */
+@Service
+public class BaseFacilityDeviceServiceImpl extends AbstractCrudService<BaseFacilityDeviceMapper, BaseFacilityDevice> implements BaseFacilityDeviceService {
+
+}

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

@@ -0,0 +1,133 @@
+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.security.utils.SecurityUtils;
+import com.usky.iot.domain.BaseFacilityDevice;
+import com.usky.iot.domain.BaseFacilityType;
+import com.usky.iot.domain.BaseGgpFacility;
+import com.usky.iot.domain.DmpDeviceInfo;
+import com.usky.iot.mapper.BaseFacilityTypeMapper;
+import com.usky.iot.service.BaseFacilityTypeService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.BaseGgpFacilityService;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeNumVO;
+import com.usky.iot.service.vo.BaseGgpFacilityTypeVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+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 {
+    @Autowired
+    private BaseGgpFacilityService baseGgpFacilityService;
+    @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);
+        Integer typeNum = baseMapper.selectCount(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<>();
+            Integer facilityNum;
+            BaseGgpFacilityTypeVO baseGgpFacilityTypeVO = new BaseGgpFacilityTypeVO();
+            baseGgpFacilityTypeVO.setTypeNum(typeNum);
+            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);
+                LambdaQueryWrapper<BaseGgpFacility> queryWrapper1 = Wrappers.lambdaQuery();
+//                queryWrapper1.eq(BaseGgpFacility::getTenantId, 1);
+                facilityNum = baseGgpFacilityService.getBaseMapper().selectCount(queryWrapper1);
+                baseGgpFacilityTypeVO.setFacilityNum(facilityNum);
+            }
+            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;
+    }
+    @Override
+    public CommonPage<BaseFacilityType> typePage(String typeCode, String typeName, Integer current, Integer size) {
+        IPage<BaseFacilityType> page = new Page<>(current, size);
+        LambdaQueryWrapper<BaseFacilityType> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.like(StringUtils.isNotBlank(typeName),BaseFacilityType::getTypeName,
+                typeName)
+                .eq(StringUtils.isNotBlank(typeCode),BaseFacilityType::getTypeCode,
+                        typeCode);
+        page = this.page(page,lambdaQuery);
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+    @Override
+    public List<BaseFacilityType> typeSelect(Integer id) {
+        LambdaQueryWrapper<BaseFacilityType> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(null != id,BaseFacilityType::getId,id);
+        List<BaseFacilityType> list1 = this.list(lambdaQuery);
+        return list1;
+    }
+
+    @Override
+    public boolean add(BaseFacilityType baseFacilityType) {
+        baseFacilityType.setCreatedBy(SecurityUtils.getUsername());
+        baseFacilityType.setCreatedTime(LocalDateTime.now());
+        return this.save(baseFacilityType);
+    }
+
+    @Override
+    public void update(BaseFacilityType baseFacilityType) {
+        baseFacilityType.setUpdatedTime(LocalDateTime.now());
+        baseFacilityType.setUpdatedBy(SecurityUtils.getUsername());
+        this.updateById(baseFacilityType);
+    }
+
+    @Override
+    public boolean remove(Integer id) {
+        return this.removeById(id);
+    }
+}

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

@@ -2,19 +2,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.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.security.utils.SecurityUtils;
-import com.usky.iot.domain.BaseGgpFacility;
+import com.usky.iot.domain.*;
 import com.usky.iot.mapper.BaseGgpFacilityMapper;
-import com.usky.iot.service.BaseGgpFacilityService;
+import com.usky.iot.service.*;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
+import com.usky.iot.service.vo.BaseGgpFacilityListVO;
 import com.usky.iot.service.vo.BaseGgpFacilityRequest;
+import com.usky.iot.service.vo.BaseGgpFacilityVO;
+import com.usky.system.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -26,6 +35,15 @@ import java.time.LocalDateTime;
  */
 @Service
 public class BaseGgpFacilityServiceImpl extends AbstractCrudService<BaseGgpFacilityMapper, BaseGgpFacility> implements BaseGgpFacilityService {
+    @Autowired
+    private BaseFacilityDeviceService baseFacilityDeviceService;
+    @Autowired
+    private BaseFacilityBuildService baseFacilityBuildService;
+    @Autowired
+    private DmpDeviceInfoService dmpDeviceInfoService;
+    @Autowired
+    private BaseBuildService baseBuildService;
+
     @Override
     public boolean add(BaseGgpFacility baseGgpFacility) {
         baseGgpFacility.setCreator(SecurityUtils.getUsername());
@@ -48,7 +66,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 +78,124 @@ 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;
+    }
+
+    @Override
+    public List<BaseGgpFacility> facilityInfo(Integer id) {
+        LambdaQueryWrapper<BaseGgpFacility> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(null != id,BaseGgpFacility::getId, id);
+        List<BaseGgpFacility> baseGgpFacilityList = this.list(queryWrapper);
+        return baseGgpFacilityList;
+    }
+
+    @Override
+    public CommonPage<DmpDeviceInfo> deviceInfo(String deviceId,Integer id,Integer current,Integer size) {
+        IPage<DmpDeviceInfo> page = new Page<>(current, size);
+        LambdaQueryWrapper<BaseFacilityDevice> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(BaseFacilityDevice::getFacilityId,id);
+        List<BaseFacilityDevice> baseFacilityDeviceList = baseFacilityDeviceService.list(lambdaQuery);
+        if (CollectionUtils.isNotEmpty(baseFacilityDeviceList)) {
+            List<Integer> deviceIdList = new ArrayList<>();
+            for (int i = 0; i < baseFacilityDeviceList.size(); i++) {
+                deviceIdList.add(baseFacilityDeviceList.get(i).getDeviceId());
+            }
+            if (CollectionUtils.isNotEmpty(deviceIdList)) {
+                if (StringUtils.isNotBlank(deviceId)){
+                    LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery();
+                    queryWrapper1.select(DmpDeviceInfo::getId, DmpDeviceInfo::getDeviceId,
+                            DmpDeviceInfo::getDeviceName, DmpDeviceInfo::getInstallAddress)
+                            .in(DmpDeviceInfo::getId, deviceIdList)
+                            .eq(DmpDeviceInfo::getDeviceId, deviceId)
+                            .eq(DmpDeviceInfo::getDeleteFlag,0);
+                    page = dmpDeviceInfoService.page(page,queryWrapper1);
+                }else {
+                    LambdaQueryWrapper<DmpDeviceInfo> queryWrapper1 = Wrappers.lambdaQuery();
+                    queryWrapper1.select(DmpDeviceInfo::getId, DmpDeviceInfo::getDeviceId,
+                            DmpDeviceInfo::getDeviceName, DmpDeviceInfo::getInstallAddress)
+                            .in(DmpDeviceInfo::getId, deviceIdList)
+                            .eq(DmpDeviceInfo::getDeleteFlag,0);
+                    page = dmpDeviceInfoService.page(page,queryWrapper1);
+                }
+            }
+        }
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+
+    @Override
+    public CommonPage<BaseBuild> buildInfo(String buildNum, Integer id, Integer current, Integer size) {
+        IPage<BaseBuild> page = new Page<>(current, size);
+        LambdaQueryWrapper<BaseFacilityBuild> lambdaQuery = Wrappers.lambdaQuery();
+        lambdaQuery.eq(BaseFacilityBuild::getFacilityId,id);
+        List<BaseFacilityBuild> baseFacilityBuildList = baseFacilityBuildService.list(lambdaQuery);
+        if (CollectionUtils.isNotEmpty(baseFacilityBuildList)) {
+            List<Integer> buildIdList = new ArrayList<>();
+            for (int i = 0; i < baseFacilityBuildList.size(); i++) {
+                buildIdList.add(baseFacilityBuildList.get(i).getBuildId());
+            }
+            if (CollectionUtils.isNotEmpty(buildIdList)) {
+                if (StringUtils.isNotBlank(buildNum)){
+                    LambdaQueryWrapper<BaseBuild> queryWrapper1 = Wrappers.lambdaQuery();
+                    queryWrapper1.select(BaseBuild::getId, BaseBuild::getBuildNum,
+                            BaseBuild::getBuildName, BaseBuild::getAddress)
+                            .in(BaseBuild::getId, buildIdList)
+                            .eq(BaseBuild::getBuildNum, buildNum)
+                            .eq(BaseBuild::getDeleteFlag,0);
+                    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);
+                }
+            }
+        }
+        return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
+    }
+
+    @Override
+    public List<BaseGgpFacility> baseGgpFacilityList(BaseGgpFacilityVO baseGgpFacilityVO) {
+        LambdaQueryWrapper<BaseGgpFacility> query = Wrappers.lambdaQuery();
+        query.eq(StringUtils.isNotBlank(baseGgpFacilityVO.getStreetTown()),BaseGgpFacility::getStreetTown, baseGgpFacilityVO.getStreetTown());
+        query.in(CollectionUtils.isNotEmpty(baseGgpFacilityVO.getFacilityType()),BaseGgpFacility::getFacilityType,
+                baseGgpFacilityVO.getFacilityType());
+
+        List<BaseGgpFacility> list = this.list(query);
+        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;
+
+
+}

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

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

+ 24 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityListVO.java

@@ -0,0 +1,24 @@
+package com.usky.iot.service.vo;
+
+import com.alibaba.fastjson.JSONObject;
+import com.usky.iot.domain.BaseGgpFacility;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author han
+ * @since 2023-02-22
+ */
+@Data
+public class BaseGgpFacilityListVO {
+
+        private BaseGgpFacility baseGgpFacility;
+
+        private JSONObject extendData;
+
+}

+ 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;
+}

+ 24 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/BaseGgpFacilityVO.java

@@ -0,0 +1,24 @@
+package com.usky.iot.service.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author han
+ * @since 2023-04-06
+ */
+@Data
+public class BaseGgpFacilityVO {
+
+        private Integer id;
+
+        private String streetTown;
+
+        private List<Integer> facilityType;
+
+}

+ 53 - 33
service-iot/service-iot-biz/src/main/resources/logback.xml

@@ -1,31 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
     <!-- 日志存放路径 -->
-	<property name="log.path" value="/var/log/uskycloud/usky-demo" />
-   <!-- 日志输出格式 -->
-	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+    <property name="log.path" value="/var/log/uskycloud/service-iot" />
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{26}:%line: %msg%n" />
+    <!--    	<property name="log.pattern" value="%gray(%d{MM-dd HH:mm:ss.SSS}) %highlight(%-5level) &#45;&#45; [%gray(%thread)] %cyan(%logger{26}:%line): %msg%n" />-->
+
+
+    <property name="SQL_PACKAGE" value="com.usky.fire.mapper"/>
 
     <!-- 控制台输出 -->
-	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-	</appender>
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="file_sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/sql.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/sql.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>3</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
 
     <!-- 系统日志输出 -->
-	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/info.log</file>
+    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/info.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
-			<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 日志最大的历史 60天 -->
-			<maxHistory>60</maxHistory>
-		</rollingPolicy>
-		<encoder>
-			<pattern>${log.pattern}</pattern>
-		</encoder>
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>3</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 过滤的级别 -->
             <level>INFO</level>
             <!-- 匹配时的操作:接收(记录) -->
@@ -33,16 +51,16 @@
             <!-- 不匹配时的操作:拒绝(不记录) -->
             <onMismatch>DENY</onMismatch>
         </filter>
-	</appender>
+    </appender>
 
     <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
-	    <file>${log.path}/error.log</file>
+        <file>${log.path}/error.log</file>
         <!-- 循环政策:基于时间创建日志文件 -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!-- 日志文件名格式 -->
             <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
-			<!-- 日志最大的历史 60天 -->
-			<maxHistory>60</maxHistory>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
         </rollingPolicy>
         <encoder>
             <pattern>${log.pattern}</pattern>
@@ -50,25 +68,27 @@
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <!-- 过滤的级别 -->
             <level>ERROR</level>
-			<!-- 匹配时的操作:接收(记录) -->
+            <!-- 匹配时的操作:接收(记录) -->
             <onMatch>ACCEPT</onMatch>
-			<!-- 不匹配时的操作:拒绝(不记录) -->
+            <!-- 不匹配时的操作:拒绝(不记录) -->
             <onMismatch>DENY</onMismatch>
         </filter>
     </appender>
 
     <!-- 系统模块日志级别控制  -->
-	<logger name="com.usky" level="info" />
-	<!-- Spring日志级别控制  -->
-	<logger name="org.springframework" level="warn" />
+    <!--	<logger name="com.usky" level="info" />-->
+    <!-- Spring日志级别控制  -->
+    <!--	<logger name="org.springframework" level="warn" />-->
+
+    <logger name="${SQL_PACKAGE}" additivity="false" level="debug">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file_sql"/>
+    </logger>
 
-	<root level="info">
-		<appender-ref ref="console" />
-	</root>
-	
-	<!--系统操作日志-->
+    <!--系统操作日志-->
     <root level="info">
         <appender-ref ref="file_info" />
         <appender-ref ref="file_error" />
+        <appender-ref ref="console" />
     </root>
 </configuration>

+ 42 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseBuildMapper.xml

@@ -0,0 +1,42 @@
+<?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.BaseBuildMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.BaseBuild">
+        <id column="id" property="id" />
+        <result column="build_num" property="buildNum" />
+        <result column="build_name" property="buildName" />
+        <result column="address" property="address" />
+        <result column="model_address" property="modelAddress" />
+        <result column="above_floor" property="aboveFloor" />
+        <result column="under_floor" property="underFloor" />
+        <result column="build_area" property="buildArea" />
+        <result column="cover_area" property="coverArea" />
+        <result column="fire_rating" property="fireRating" />
+        <result column="use_character" property="useCharacter" />
+        <result column="build_structure" property="buildStructure" />
+        <result column="build_high" property="buildHigh" />
+        <result column="high_type" property="highType" />
+        <result column="complete_year" property="completeYear" />
+        <result column="safe_person" property="safePerson" />
+        <result column="manage_person" property="managePerson" />
+        <result column="fire_risk" property="fireRisk" />
+        <result column="fire_control_room" property="fireControlRoom" />
+        <result column="build_inside" property="buildInside" />
+        <result column="build_plan" property="buildPlan" />
+        <result column="facility_id" property="facilityId" />
+        <result column="company_id" property="companyId" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_person" property="updatePerson" />
+        <result column="creator" property="creator" />
+        <result column="delete_flag" property="deleteFlag" />
+        <result column="under_space" property="underSpace" />
+        <result column="fireproof_coat" property="fireproofCoat" />
+        <result column="fire_facility_system" property="fireFacilitySystem" />
+        <result column="other_system" property="otherSystem" />
+        <result column="other_facilities" property="otherFacilities" />
+    </resultMap>
+
+</mapper>

+ 14 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityBuildMapper.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.BaseFacilityBuildMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.BaseFacilityBuild">
+        <id column="id" property="id" />
+        <result column="facility_id" property="facilityId" />
+        <result column="build_id" property="buildId" />
+        <result column="created_by" property="createdBy" />
+        <result column="created_time" property="createdTime" />
+    </resultMap>
+
+</mapper>

+ 14 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseFacilityDeviceMapper.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.BaseFacilityDeviceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.iot.domain.BaseFacilityDevice">
+        <id column="id" property="id" />
+        <result column="facility_id" property="facilityId" />
+        <result column="device_id" property="deviceId" />
+        <result column="created_by" property="createdBy" />
+        <result column="created_time" property="createdTime" />
+    </resultMap>
+
+</mapper>

+ 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
+        upkeepFacilityNum
+        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
+        closeFacilityNum
+        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>

+ 2 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/BaseGgpFacilityMapper.xml

@@ -32,6 +32,8 @@
         <result column="update_time" property="updateTime" />
         <result column="update_person" property="updatePerson" />
         <result column="creator" property="creator" />
+        <result column="facility_address" property="facilityAddress" />
+        <result column="facility_desc" property="facilityDesc" />
     </resultMap>
 
 </mapper>