Browse Source

feat: 执法对象关联建筑

彭良苛 1 year ago
parent
commit
c0dfa43f26
15 changed files with 544 additions and 1 deletions
  1. 38 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/obj/EnforceObjArchitecture.java
  2. 11 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceJobDTO.java
  3. 207 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/ArchitectureDTO.java
  4. 10 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/po/ArchitecturePO.java
  5. 20 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/other/ArchitectureVO.java
  6. 10 0
      zfjg-api/zfjg-api-system/src/main/java/com/zfjg/system/api/domain/SysDept.java
  7. 1 1
      zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/IdGenerator.java
  8. 34 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/ArchitectureController.java
  9. 15 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/obj/EnforceObjArchitectureMapper.java
  10. 10 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/obj/IEnforceObjArchitectureService.java
  11. 18 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceJobServiceImpl.java
  12. 40 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/obj/EnforceObjArchitectureServiceImpl.java
  13. 111 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/ArchitectureServiceImpl.java
  14. 13 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IArchitectureService.java
  15. 6 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/obj/EnforceObjArchitectureMapper.xml

+ 38 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/obj/EnforceObjArchitecture.java

@@ -0,0 +1,38 @@
+package com.zfjg.manage.api.domain.enforce.obj;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 执法对象建筑信息
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = true)
+public class EnforceObjArchitecture {
+
+
+
+    @TableId(type = IdType.INPUT)
+    private String enforceObjId;
+    /**
+     * 远程监控建筑名称
+     */
+    @TableField(updateStrategy = FieldStrategy.ALWAYS, insertStrategy = FieldStrategy.ALWAYS)
+    private String architectureName;
+    /**
+     * 远程监控建筑ID
+     */
+    @TableField(updateStrategy = FieldStrategy.ALWAYS, insertStrategy = FieldStrategy.ALWAYS)
+    private Long architectureId;
+
+}

+ 11 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceJobDTO.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.api.dto.enforce.job;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
 import com.zfjg.manage.api.dto.approve.ApproveDetailDTO;
@@ -106,4 +107,14 @@ public class EnforceJobDTO extends EnforceJob {
 
     @ApiModelProperty(value = "执行步骤:immediately-立改,deadline-限改")
     private String step;
+    /**
+     * 远程监控建筑名称
+     */
+    @TableField(exist = false)
+    private String architectureName;
+    /**
+     * 远程监控建筑ID
+     */
+    @TableField(exist = false)
+    private Long architectureId;
 }

+ 207 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/ArchitectureDTO.java

@@ -0,0 +1,207 @@
+package com.zfjg.manage.api.dto.other;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+
+@Data
+@ApiModel("建筑详情")
+@Accessors(chain = true)
+public class ArchitectureDTO {
+
+    @ApiModelProperty("id")
+    private Long id;
+    @ApiModelProperty("社会单位id(管理单位id)")
+    private Long socialUnitId;
+    @ApiModelProperty("支队id")
+    private Long organizationId;
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+    @ApiModelProperty("建筑高度")
+    private Double architectureHeight;
+    @ApiModelProperty("建筑面积")
+    private Double architectureArea;
+    @ApiModelProperty("地上楼层数")
+    private Integer floorGround;
+    @ApiModelProperty("吊层数")
+    private Integer hangingLayer;
+    @ApiModelProperty("地下楼层数")
+    private Integer floorUnderground;
+    @ApiModelProperty("楼层总数")
+    private Integer floorTotal;
+    @ApiModelProperty("建筑类别")
+    private String buildingType;
+    @ApiModelProperty("建造年代")
+    private String buildEra;
+    @ApiModelProperty("区id")
+    private Long regionId;
+    @ApiModelProperty("街道id")
+    private Long streetId;
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    @ApiModelProperty("专用配电间个数")
+    private Integer powerDistributionNum;
+    @ApiModelProperty("专用配电间位置")
+    private String powerDistributionLocation;
+    @ApiModelProperty("消防水泵房间数")
+    private Integer firePumpNum;
+    @ApiModelProperty("消防水泵房位置")
+    private String firePumpLocation;
+    @ApiModelProperty("避难层个数")
+    private Integer hideFloorNum;
+    @ApiModelProperty("避难层位置")
+    private String hideFloorPosition;
+    @ApiModelProperty("消防控制室个数")
+    private Integer fireControlNum;
+    @ApiModelProperty("消防控制室位置")
+    private String fireControlPosition;
+    @ApiModelProperty("发电机房个数")
+    private Integer generatorNum;
+    @ApiModelProperty("发电机房位置")
+    private String generatorPosition;
+    @ApiModelProperty("其他重要设备房数量")
+    private Integer otherImportantNum;
+    @ApiModelProperty("其他重要设备房位置")
+    private String otherImportantPosition;
+    @ApiModelProperty("审核状态:;1.待审核2.已驳回;3.已审核")
+    private Integer auditStatus;
+    @ApiModelProperty("审核拒绝原因")
+    private String rejectReason;
+    @ApiModelProperty("备注信息")
+    private String remark;
+    @ApiModelProperty("消防安全责任人")
+    private String fireDutyerName;
+    @ApiModelProperty("消防安全责任人联系方式")
+    private String fireDutyerPhone;
+    @ApiModelProperty("消防安全管理人")
+    private String fireManagerName;
+    @ApiModelProperty("消防安全管理人联系方式")
+    private String fireManagerPhone;
+    @ApiModelProperty("经度")
+    private String lon;
+    @ApiModelProperty("纬度")
+    private String lat;
+    @ApiModelProperty("火灾危险性")
+    private String fireDanger;
+    @ApiModelProperty("耐火等级")
+    private String fireProof;
+    @ApiModelProperty("结构类型")
+    private String structureType;
+    @ApiModelProperty("毗邻建筑物情况")
+    private String abutBuild;
+    @ApiModelProperty("安全出口位置")
+    private String emergencyExit;
+    @ApiModelProperty("安全出口形式")
+    private String emergencyExitType;
+    @ApiModelProperty("消防电梯数量")
+    private Integer fireLiftNum;
+    @ApiModelProperty("安全出口数量")
+    private Long emergencyExitNum;
+    @ApiModelProperty("日常工作时间人数")
+    private Integer workerNum;
+    @ApiModelProperty("最大容纳人数")
+    private Integer accommodateMaxNum;
+    @ApiModelProperty("储存物名称")
+    private String storageName;
+    @ApiModelProperty("消防电梯容纳总重量")
+    private Integer lifeAccommodateNum;
+    @ApiModelProperty("储存物性质")
+    private String storageNameNature;
+    @ApiModelProperty("储存物形态")
+    private String storageType;
+    @ApiModelProperty("储存容积")
+    private Double storageVolume;
+    @ApiModelProperty("储存物数量")
+    private Integer storageNum;
+    @ApiModelProperty("主要产品")
+    private String products;
+    @ApiModelProperty("主要原料")
+    private String rawMaterial;
+    @ApiModelProperty("建筑立面图id")
+    private String facadeId;
+    @ApiModelProperty("消防设施平面布置图")
+    private String planeId;
+    @ApiModelProperty("建筑平面图")
+    private String buildPlaneId;
+
+    @ApiModelProperty("消防安全责任人照片id")
+    private String fireDutyerImg;
+    @ApiModelProperty("消防安全管理人照片id")
+    private String fireManagerImg;
+    @ApiModelProperty("产权人")
+    private String propertyer;
+    @ApiModelProperty("产权人联系方式")
+    private String propertyerPhone;
+    @ApiModelProperty("产权人身份证号码")
+    private String propertyerCard;
+    @ApiModelProperty("产权人照片id")
+    private String propertyerPhotoId;
+    @ApiModelProperty("消防安全责任人身份证号码")
+    private String fireDutyerCard;
+    @ApiModelProperty("消防安全管理人身份证号码")
+    private String fireManagerCard;
+    @ApiModelProperty("建筑编码")
+    private String buildCode;
+
+    @ApiModelProperty("大数据高层建筑ID")
+    private Long dbId;
+
+
+
+    @ApiModelProperty("建筑性质:1民用 2公共 3工业")
+    private Integer architectureNature;
+
+    @ApiModelProperty("建筑用途")
+    private String architectureUse;
+
+    @ApiModelProperty("占地面积")
+    private Double floorArea;
+
+    @ApiModelProperty("是否有消控室:1是 2否")
+    private Integer hasFireControlRoom;
+
+    @ApiModelProperty("是否有微型消防站:1是 2否")
+    private Integer hasMiniFireStation;
+
+    @ApiModelProperty("存储/生产物物品类别")
+    private String productType;
+
+    @ApiModelProperty("建筑群id")
+    private Long buildGroupsId;
+
+    @ApiModelProperty("建筑类型:1高层建筑 2自建房")
+    private String type;
+
+    @ApiModelProperty("消防安全管理形式")
+    private String managementForm;
+
+    @ApiModelProperty("住房间数")
+    private Long rooms;
+
+    @ApiModelProperty("住宿人数")
+    private Long accommodation;
+
+    @ApiModelProperty("工作人员数量")
+    private Long staffs;
+
+    @ApiModelProperty("疏散楼梯数")
+    private Long escapeStairs;
+
+    @ApiModelProperty("建筑群(小区)")
+    private String buildGroupsName;
+
+    @ApiModelProperty("楼栋")
+    private String floor;
+
+    @ApiModelProperty("大数据工商ID")
+    private String gsid;
+
+    @ApiModelProperty("数据来源")
+    private String source;
+
+    private String uuid;
+
+}

+ 10 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/po/ArchitecturePO.java

@@ -0,0 +1,10 @@
+package com.zfjg.manage.api.po;
+
+import lombok.Data;
+
+@Data
+public class ArchitecturePO {
+    private String architectureName;
+    private Integer pageNo;
+    private Integer pageSize;
+}

+ 20 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/other/ArchitectureVO.java

@@ -0,0 +1,20 @@
+package com.zfjg.manage.api.vo.other;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+
+@Data
+@ApiModel("建筑详情")
+@Accessors(chain = true)
+public class ArchitectureVO {
+
+    @ApiModelProperty("建组ID")
+    private Long id;
+
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+
+}

+ 10 - 0
zfjg-api/zfjg-api-system/src/main/java/com/zfjg/system/api/domain/SysDept.java

@@ -68,6 +68,8 @@ public class SysDept extends BaseEntity
 
     private String enforceOrgId;
 
+    private String regionCode;
+
     private String address;
 
     private String shortNameEn;
@@ -275,6 +277,14 @@ public class SysDept extends BaseEntity
         this.children = children;
     }
 
+    public String getRegionCode() {
+        return regionCode;
+    }
+
+    public void setRegionCode(String regionCode) {
+        this.regionCode = regionCode;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 1
zfjg-common/zfjg-common-core/src/main/java/com/zfjg/common/core/utils/IdGenerator.java

@@ -8,7 +8,7 @@ import java.util.UUID;
  */
 public class IdGenerator {
 
-    private static IdGenerator instance = new IdGenerator(1999);
+    private static IdGenerator instance = new IdGenerator(24);
 
     public static IdGenerator initDefaultInstance(int machineId) {
         instance = new IdGenerator(machineId);

+ 34 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/ArchitectureController.java

@@ -0,0 +1,34 @@
+package com.zfjg.manage.controller.other;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zfjg.common.core.web.domain.AjaxResult;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.manage.api.po.ArchitecturePO;
+import com.zfjg.manage.api.vo.other.ArchitectureVO;
+import com.zfjg.manage.service.other.IArchitectureService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@Api(tags = "建筑信息")
+@RequestMapping("architecture")
+@RequiredArgsConstructor
+public class ArchitectureController {
+
+    private final IArchitectureService architectureService;
+
+
+    @RequestMapping(
+            path = "/page",
+            method = RequestMethod.GET
+    )
+    public TableInfo<ArchitectureVO> page(ArchitecturePO po) {
+        return architectureService.findPage(po);
+    }
+
+}

+ 15 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/obj/EnforceObjArchitectureMapper.java

@@ -0,0 +1,15 @@
+package com.zfjg.manage.mapper.enforce.obj;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 执法对象建筑信息
+ */
+@Repository
+public interface EnforceObjArchitectureMapper extends BaseMapper<EnforceObjArchitecture> {
+
+
+}

+ 10 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/obj/IEnforceObjArchitectureService.java

@@ -0,0 +1,10 @@
+package com.zfjg.manage.service.enforce.obj;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
+
+
+public interface IEnforceObjArchitectureService extends IService<EnforceObjArchitecture> {
+    void checkAndUpdateEnforceObjArchitecture(String enforceObjId, Long architectureId, String architectureName);
+
+}

+ 18 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceJobServiceImpl.java

@@ -28,6 +28,7 @@ import com.zfjg.manage.api.domain.approve.EnforceApproveJob;
 import com.zfjg.manage.api.domain.enforce.job.*;
 import com.zfjg.manage.api.domain.enforce.message.EnforceMessage;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
+import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
 import com.zfjg.manage.api.domain.enforce.template.*;
 import com.zfjg.manage.api.dto.approve.ApproveDetailDTO;
 import com.zfjg.manage.api.dto.enforce.job.*;
@@ -55,6 +56,7 @@ import com.zfjg.manage.service.approve.IEnforceApproveService;
 import com.zfjg.manage.service.enforce.job.*;
 import com.zfjg.manage.service.enforce.message.IEnforceMessageService;
 import com.zfjg.manage.service.enforce.message.IEnforceMessageTemplateService;
+import com.zfjg.manage.service.enforce.obj.IEnforceObjArchitectureService;
 import com.zfjg.manage.service.enforce.obj.IEnforceObjService;
 import com.zfjg.manage.service.enforce.qr.IEnforceQrCodeSignService;
 import com.zfjg.manage.service.enforce.template.IEnforceTemplateHandbookService;
@@ -278,6 +280,14 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
     public EnforceJobDTO getDetail(Long id) {
         EnforceJobDTO enforceJobDTO = this.get(id);
         enforceJobDTO.setIsFinished(true);
+
+        // 获取建筑信息
+        EnforceObjArchitecture enforceObjArchitecture = enforceObjArchitectureService.getById(enforceJobDTO.getEnforceObjId());
+        if (Objects.nonNull(enforceObjArchitecture)) {
+            enforceJobDTO.setArchitectureId(enforceObjArchitecture.getArchitectureId());
+            enforceJobDTO.setArchitectureName(enforceObjArchitecture.getArchitectureName());
+        }
+
         //获取模板名称
         EnforceTemplate enforceTemplate = enforceTemplateService.getById(enforceJobDTO.getEnforceTemplateId());
         if (StringUtils.isNotNull(enforceTemplate)) {
@@ -819,6 +829,9 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
         updateJobItemSum(enforceJobNode.getJobId());
     }
 
+    @Autowired
+    private IEnforceObjArchitectureService enforceObjArchitectureService;
+
     /**
      * 编辑执法任务
      *
@@ -832,6 +845,11 @@ public class EnforceJobServiceImpl extends ServiceImpl<EnforceJobMapper, Enforce
         enforceJobDTO.setDeadlineFileId(null);
         log.info("开始更新任务:[{}]的信息!", id);
         EnforceJob enforceJob = baseMapper.selectById(id);
+        // 校验以及更新建筑绑定信息
+        enforceObjArchitectureService.checkAndUpdateEnforceObjArchitecture(enforceJob.getEnforceObjId(),
+                enforceJobDTO.getArchitectureId(),
+                enforceJobDTO.getArchitectureName()
+                );
         // 校验json,防止数据覆盖
         checkStaticNoticeResult(enforceJob, enforceJobDTO.getStaticNoticeResult(), executeStep);
         if (JobStatusEnum.ARCHIVED.getValue().equals(enforceJob.getJobStatus()))

+ 40 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/obj/EnforceObjArchitectureServiceImpl.java

@@ -0,0 +1,40 @@
+package com.zfjg.manage.service.impl.enforce.obj;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
+import com.zfjg.manage.mapper.enforce.obj.EnforceObjArchitectureMapper;
+import com.zfjg.manage.service.enforce.obj.IEnforceObjArchitectureService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * 执法对象建筑关联服务
+ */
+@Service
+public class EnforceObjArchitectureServiceImpl extends ServiceImpl<EnforceObjArchitectureMapper, EnforceObjArchitecture>
+        implements IEnforceObjArchitectureService {
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void checkAndUpdateEnforceObjArchitecture(String enforceObjId, Long architectureId, String architectureName) {
+        if (StrUtil.isBlank(architectureName)) return;
+        EnforceObjArchitecture enforceObjArchitecture = getById(enforceObjId);
+        if (Objects.nonNull(enforceObjArchitecture)) {
+            enforceObjArchitecture
+                    .setArchitectureId(architectureId)
+                    .setArchitectureName(architectureName);
+        } else {
+            enforceObjArchitecture =
+                new EnforceObjArchitecture()
+                        .setEnforceObjId(enforceObjId)
+                        .setArchitectureId(architectureId)
+                        .setArchitectureName(architectureName);
+        }
+        saveOrUpdate(enforceObjArchitecture);
+    }
+
+}

+ 111 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/ArchitectureServiceImpl.java

@@ -0,0 +1,111 @@
+package com.zfjg.manage.service.impl.other;
+
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.map.MapBuilder;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zfjg.common.core.exception.ServiceException;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.common.security.utils.SecurityUtils;
+import com.zfjg.manage.api.dto.other.ArchitectureDTO;
+import com.zfjg.manage.api.po.ArchitecturePO;
+import com.zfjg.manage.api.vo.other.ArchitectureVO;
+import com.zfjg.manage.mapper.sys.DeptMapper;
+import com.zfjg.manage.service.other.IArchitectureService;
+import com.zfjg.system.api.domain.SysDept;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@RequiredArgsConstructor
+@Service
+public class ArchitectureServiceImpl implements IArchitectureService {
+
+    private final RestTemplate restTemplate;
+    private final DeptMapper deptMapper;
+
+    /**
+     * 分页查询
+     * 1、封装远程监控请求参数
+     * 2、请求
+     * @param po
+     * @return
+     */
+    @Override
+    public TableInfo<ArchitectureVO> findPage(ArchitecturePO po) {
+        String orgId = SecurityUtils.getOrgId();
+        SysDept userLoginDept = Optional.ofNullable(deptMapper.selectOne(Wrappers.<SysDept>lambdaQuery()
+                .eq(SysDept::getEnforceOrgId, orgId)
+                .last("limit 1")
+        )).orElse(new SysDept());
+        TableInfo<ArchitectureVO> tableInfo = new TableInfo<>();
+        tableInfo.setMsg("OK");
+        tableInfo.setCode(200);
+        if (StrUtil.isBlank(userLoginDept.getRegionCode())) return tableInfo;
+        // 封装请求参数
+        RequestArchitectureBody result = assembleRequest(po, userLoginDept);
+        // 请求参数结果
+        String url = "https://ycjk.cq119.gov.cn/api/admin/architecture/list";
+        if (CollUtil.isNotEmpty(result.params)) {
+            List<String> params = new ArrayList<>(result.params.size());
+            result.params.forEach((k,v) -> {
+                params.add(k+"="+v);
+            });
+            url += ("?" + String.join("&", params));
+        }
+        ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
+        if (response.getStatusCode().is2xxSuccessful()) {
+            String body = response.getBody();
+            JSONObject data = JSON.parseObject(body);
+            if (Objects.isNull(data) || data.getInteger("code") != 200)  throw new ServiceException("调用远程监控建筑数据失败!");
+            long total = data.getLongValue("total");
+            List<ArchitectureDTO> rows = com.alibaba.fastjson.JSONObject.parseArray(data.getJSONArray("rows").toJSONString(), ArchitectureDTO.class);
+            List<ArchitectureVO> records = rows.stream().map(item -> new ArchitectureVO().setId(item.getId()).setArchitectureName(item.getArchitectureName()))
+                    .collect(Collectors.toList());
+            tableInfo.setRows(records);
+            tableInfo.setTotal(total);
+            return tableInfo;
+        } else {
+            throw new ServiceException("调用远程监控建筑数据失败!");
+        }
+    }
+
+    private RequestArchitectureBody assembleRequest(ArchitecturePO po, SysDept userLoginDept) {
+        Integer pageNum = Optional.ofNullable(po.getPageNo()).orElse(1);
+        Integer pageSize = Optional.ofNullable(po.getPageSize()).orElse(10);
+        Map<String, Object> params = MapBuilder.<String, Object>create()
+                .put("pageNum", pageNum)
+                .put("pageSize", pageSize)
+                .put("regionId", userLoginDept.getRegionCode() + "000000")
+                .build();
+        if (StrUtil.isNotBlank(po.getArchitectureName())) {
+            params.put("architectureName", po.getArchitectureName());
+        }
+        return  new RequestArchitectureBody(pageNum, pageSize, params);
+    }
+
+    private static class RequestArchitectureBody {
+        public final Integer pageNum;
+        public final Integer pageSize;
+        public final Map<String, Object> params;
+
+        public RequestArchitectureBody(Integer pageNum, Integer pageSize, Map<String, Object> params) {
+            this.pageNum = pageNum;
+            this.pageSize = pageSize;
+            this.params = params;
+        }
+    }
+
+}

+ 13 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IArchitectureService.java

@@ -0,0 +1,13 @@
+package com.zfjg.manage.service.other;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.manage.api.po.ArchitecturePO;
+import com.zfjg.manage.api.vo.other.ArchitectureVO;
+
+import java.util.List;
+
+public interface IArchitectureService {
+    TableInfo<ArchitectureVO> findPage(ArchitecturePO po);
+
+}

+ 6 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/obj/EnforceObjArchitectureMapper.xml

@@ -0,0 +1,6 @@
+<?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.zfjg.manage.mapper.enforce.obj.EnforceObjArchitectureMapper">
+
+</mapper>