Browse Source

单位关联建筑功能开发

linjiawei 2 months ago
parent
commit
a924751a87
20 changed files with 688 additions and 15 deletions
  1. 29 0
      sql/zfjq_2024112701.sql
  2. 63 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelate.java
  3. 58 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelateHis.java
  4. 33 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateAdd.java
  5. 30 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateUpdate.java
  6. 30 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjCheckDTO.java
  7. 18 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/search/other/EnforceObjArchitectureRelateQuery.java
  8. 22 7
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/ArchitectureController.java
  9. 87 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateController.java
  10. 44 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateHisController.java
  11. 19 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/EnforceObjArchitectureRelateHisMapper.java
  12. 22 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/EnforceObjArchitectureRelateMapper.java
  13. 21 5
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/ArchitectureServiceImpl.java
  14. 29 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateHisServiceImpl.java
  15. 98 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java
  16. 3 3
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IArchitectureService.java
  17. 19 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IEnforceObjArchitectureRelateHisService.java
  18. 26 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IEnforceObjArchitectureRelateService.java
  19. 10 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/other/EnforceObjArchitectureRelateHisMapper.xml
  20. 27 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/other/EnforceObjArchitectureRelateMapper.xml

+ 29 - 0
sql/zfjq_2024112701.sql

@@ -0,0 +1,29 @@
+DROP TABLE IF EXISTS `enforce_obj_architecture_relate`;
+CREATE TABLE `enforce_obj_architecture_relate` (
+                                             `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+                                             `enforce_obj_id` varchar(256) NOT NULL COMMENT '执法对象ID',
+                                             `architecture_id` bigint(20) DEFAULT NULL COMMENT '建筑id',
+                                             `architecture_uuid` char(36) DEFAULT NULL COMMENT '建筑uuid',
+                                             `relate_type` int(1) DEFAULT 0 COMMENT '关系类型:0入驻关系 ,1管理关系',
+                                             `create_user_id` varchar(64) DEFAULT NULL,
+                                             `create_user_name` varchar(64) DEFAULT NULL,
+                                             `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
+                                             `update_user_id` varchar(64) DEFAULT NULL,
+                                             `update_user_name` varchar(128) DEFAULT NULL COMMENT '更新人名称',
+                                             `update_time` datetime DEFAULT CURRENT_TIMESTAMP,
+                                             PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='单位与建筑的关联';
+
+DROP TABLE IF EXISTS `enforce_obj_architecture_relate_his`;
+CREATE TABLE `enforce_obj_architecture_relate_his` (
+                                                   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+                                                   `enforce_obj_id` varchar(256) NOT NULL COMMENT '执法对象ID',
+                                                   `before_architecture_id` bigint(20) DEFAULT NULL COMMENT '更正前建筑id',
+                                                   `before_architecture_uuid` char(36) DEFAULT NULL COMMENT '更正前建筑uuid',
+                                                   `after_architecture_id` bigint(20) DEFAULT NULL COMMENT '更正后建筑id',
+                                                   `after_architecture_uuid` char(36) DEFAULT NULL COMMENT '更正后建筑uuid',
+                                                   `create_user_id` varchar(64) DEFAULT NULL,
+                                                   `create_user_name` varchar(64) DEFAULT NULL,
+                                                   `create_time` datetime DEFAULT CURRENT_TIMESTAMP,
+                                                   PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='单位与建筑的关联更正记录表';

+ 63 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelate.java

@@ -0,0 +1,63 @@
+package com.zfjg.manage.api.domain.other;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 单位与建筑的关联
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Data
+@TableName("enforce_obj_architecture_relate")
+@ApiModel(value = "EnforceObjArchitectureRelate对象", description = "单位与建筑的关联")
+public class EnforceObjArchitectureRelate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("执法对象ID")
+    private String enforceObjId;
+
+    @ApiModelProperty("建筑id")
+    private Long architectureId;
+
+    @ApiModelProperty("建筑uuid")
+    private String architectureUuid;
+
+    @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
+    private Integer relateType;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    private String updateUserId;
+
+    @ApiModelProperty("更新人名称")
+    private String updateUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+}

+ 58 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelateHis.java

@@ -0,0 +1,58 @@
+package com.zfjg.manage.api.domain.other;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 单位与建筑的关联更正记录表
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Data
+@TableName("enforce_obj_architecture_relate_his")
+@ApiModel(value = "EnforceObjArchitectureRelateHis对象", description = "单位与建筑的关联更正记录表")
+public class EnforceObjArchitectureRelateHis implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("执法对象ID")
+    private String enforceObjId;
+
+    @ApiModelProperty("更正前建筑id")
+    private Long beforeArchitectureId;
+
+    @ApiModelProperty("更正前建筑uuid")
+    private String beforeArchitectureUuid;
+
+    @ApiModelProperty("更正后建筑id")
+    private Long afterArchitectureId;
+
+    @ApiModelProperty("更正后建筑uuid")
+    private String afterArchitectureUuid;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+}

+ 33 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateAdd.java

@@ -0,0 +1,33 @@
+package com.zfjg.manage.api.dto.other;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 单位与建筑的关联
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Data
+public class EnforceObjArchitectureRelateAdd implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("执法对象ID")
+    private String enforceObjId;
+
+    @ApiModelProperty("建筑id")
+    private Long architectureId;
+
+    @ApiModelProperty("建筑uuid")
+    private String architectureUuid;
+
+    @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
+    private Integer relateType;
+
+}

+ 30 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateUpdate.java

@@ -0,0 +1,30 @@
+package com.zfjg.manage.api.dto.other;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 单位与建筑的关联
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Data
+public class EnforceObjArchitectureRelateUpdate implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("单位id")
+    private String enforceObjId;
+
+    @ApiModelProperty("建筑id")
+    private Long architectureId;
+
+    @ApiModelProperty("建筑uuid")
+    private String architectureUuid;
+
+}

+ 30 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjCheckDTO.java

@@ -0,0 +1,30 @@
+package com.zfjg.manage.api.dto.other;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 单位与建筑的关联
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Data
+public class EnforceObjCheckDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("执法对象ID")
+    private String enforceObjId;
+
+    @ApiModelProperty("执法对象名称")
+    private String enforceObjName;
+
+    @ApiModelProperty("被检查次数")
+    private Integer times;
+
+}

+ 18 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/search/other/EnforceObjArchitectureRelateQuery.java

@@ -0,0 +1,18 @@
+package com.zfjg.manage.api.search.other;
+
+import com.zfjg.common.core.web.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("高楼码查询建筑的查询条件")
+public class EnforceObjArchitectureRelateQuery extends PageQuery {
+
+    @ApiModelProperty("高楼码uuid")
+    private String architectureUuid;
+
+    @ApiModelProperty("单位和建筑的关系类型:0入驻关系 ,1管理关系")
+    private Integer relateType;
+
+}

+ 22 - 7
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/ArchitectureController.java

@@ -1,18 +1,16 @@
 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.domain.R;
+import com.zfjg.common.core.utils.StringUtils;
 import com.zfjg.common.core.web.page.TableInfo;
+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.service.other.IArchitectureService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 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;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @Api(tags = "建筑信息")
@@ -31,4 +29,21 @@ public class ArchitectureController {
         return architectureService.findPage(po);
     }
 
+    /**
+     *
+     * 查询建筑信息
+     */
+    @ApiOperation(value = "通过uuid查询建筑信息")
+    @GetMapping(
+            value = "/{uuid}"
+    )
+    public R<ArchitectureDTO> getArchitectureDTO(@PathVariable String uuid) {
+        ArchitectureDTO vo =architectureService.getArchitectureDTO(uuid);
+        if (StringUtils.isNull(vo)) {
+            return R.fail("建筑信息不存在");
+        }
+        return R.ok(vo);
+    }
+
+
 }

+ 87 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateController.java

@@ -0,0 +1,87 @@
+package com.zfjg.manage.controller.other;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zfjg.common.core.domain.R;
+import com.zfjg.common.core.web.controller.BaseController;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelate;
+import com.zfjg.manage.api.dto.other.ArchitectureDTO;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateAdd;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateUpdate;
+import com.zfjg.manage.api.dto.other.EnforceObjCheckDTO;
+import com.zfjg.manage.api.search.other.EnforceObjArchitectureRelateQuery;
+import com.zfjg.manage.service.other.IArchitectureService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateService;
+
+import java.util.List;
+
+
+
+/**
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Api(tags = "单位与建筑的关联")
+@RestController
+@RequestMapping("")
+public class EnforceObjArchitectureRelateController extends BaseController {
+    @Autowired
+    private IEnforceObjArchitectureRelateService enforceObjArchitectureRelateService;
+    @Autowired
+    private IArchitectureService architectureService;
+
+    @ApiOperation(value="保存单位与建筑的关联")
+    @PostMapping("/enforceObjArchitectureRelate")
+    public R<Boolean> save(@RequestBody EnforceObjArchitectureRelateAdd add) {
+        return R.ok(enforceObjArchitectureRelateService.insertEnforceObjArchitectureRelate(add));
+    }
+
+    @ApiOperation(value="更正单位建筑信息")
+    @PutMapping("/enforceObjArchitectureRelate")
+    public R<Boolean> update(@RequestBody EnforceObjArchitectureRelateUpdate param) {
+        return R.ok(enforceObjArchitectureRelateService.updateEnforceObjArchitectureRelate(param));
+    }
+//
+//    @ApiOperation(value="根据id删除对象")
+//    @DeleteMapping("/enforceObjArchitectureRelate/{id}")
+//    public R<Boolean> delete(@PathVariable Long id) {
+//        return R.ok(enforceObjArchitectureRelateService.removeById(id));
+//    }
+
+    @ApiOperation(value="根据单位id查询建筑信息")
+    @GetMapping("/enforceObjArchitectureRelate/{enforceObjId}")
+    public R<ArchitectureDTO> get(@PathVariable String enforceObjId) {
+        EnforceObjArchitectureRelate enforceObjArchitectureRelate = enforceObjArchitectureRelateService.getOne(new LambdaQueryWrapper<EnforceObjArchitectureRelate>()
+                .eq(EnforceObjArchitectureRelate::getEnforceObjId, enforceObjId));
+        if (null != enforceObjArchitectureRelate) {
+            return R.ok(architectureService.getArchitectureDTO(enforceObjArchitectureRelate.getArchitectureUuid()));
+        }
+        return R.fail("查询不到关联的建筑信息");
+    }
+
+    @ApiOperation(value="查询高楼码关联的单位记录列表")
+    @GetMapping("/enforceObjArchitectureRelate/list")
+    public R<List<EnforceObjCheckDTO>> getEnforceObjList(EnforceObjArchitectureRelateQuery query) {
+        List<EnforceObjCheckDTO> list = enforceObjArchitectureRelateService.getEnforceObjList(query);
+        return R.ok(list);
+    }
+
+    @ApiOperation("查询高楼码关联的单位记录列表(分页)")
+    @GetMapping("/enforceObjArchitectureRelate/page")
+    public TableInfo<EnforceObjCheckDTO> getEnforceObjPage(EnforceObjArchitectureRelateQuery query) {
+        startPage();
+        List<EnforceObjCheckDTO> page = enforceObjArchitectureRelateService.getEnforceObjList(query);
+        return new TableInfo<>(page);
+    }
+
+
+
+}
+
+

+ 44 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateHisController.java

@@ -0,0 +1,44 @@
+package com.zfjg.manage.controller.other;
+
+import java.util.*;
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateHisService;
+
+/**
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Api(tags = "单位与建筑的关联更正记录表")
+@RestController
+@RequestMapping("")
+public class EnforceObjArchitectureRelateHisController {
+    @Autowired
+    private IEnforceObjArchitectureRelateHisService enforceObjArchitectureRelateHisService;
+
+    @ApiOperation(value="保存对象")
+    @PostMapping("/enforceObjArchitectureRelateHis")
+    public R<Boolean> save(@RequestBody EnforceObjArchitectureRelateHis param) {
+        return R.ok(enforceObjArchitectureRelateHisService.save(param));
+    }
+
+
+    @ApiOperation(value="列表查询")
+    @GetMapping("/enforceObjArchitectureRelateHis/list")
+    public R<List<EnforceObjArchitectureRelateHis>> getList(@ApiParam("关键字") String keyword) {
+		Map paramMap = new HashMap();
+		paramMap.put("keyword", keyword);
+        return R.ok(enforceObjArchitectureRelateHisService.list(paramMap));
+    }
+
+
+
+}
+
+

+ 19 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/EnforceObjArchitectureRelateHisMapper.java

@@ -0,0 +1,19 @@
+package com.zfjg.manage.mapper.other;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
+import org.apache.ibatis.annotations.Param;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * <p>
+ * 单位与建筑的关联更正记录表 Mapper 接口
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+public interface EnforceObjArchitectureRelateHisMapper extends BaseMapper<EnforceObjArchitectureRelateHis> {
+  List<EnforceObjArchitectureRelateHis> list(@Param("pm") Map<String, Object> param);
+}

+ 22 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/EnforceObjArchitectureRelateMapper.java

@@ -0,0 +1,22 @@
+package com.zfjg.manage.mapper.other;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelate;
+import com.zfjg.manage.api.dto.other.EnforceObjCheckDTO;
+import com.zfjg.manage.api.search.other.EnforceObjArchitectureRelateQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 单位与建筑的关联 Mapper 接口
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+public interface EnforceObjArchitectureRelateMapper extends BaseMapper<EnforceObjArchitectureRelate> {
+    List<EnforceObjCheckDTO> getEnforceObjList(@Param("pm")EnforceObjArchitectureRelateQuery query);
+}

+ 21 - 5
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/ArchitectureServiceImpl.java

@@ -4,14 +4,9 @@ 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;
@@ -24,6 +19,7 @@ import com.zfjg.system.api.domain.SysDept;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
@@ -82,6 +78,26 @@ public class ArchitectureServiceImpl implements IArchitectureService {
         }
     }
 
+    /**
+     * 通过uuid查询建筑信息
+     * @param uuid
+     * @return
+     */
+    @Override
+    public ArchitectureDTO getArchitectureDTO(String uuid) {
+        String url = "https://ycjk.cq119.gov.cn/api/admin/architecture/list?uuid="+uuid;
+        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("调用远程监控建筑数据失败!");
+            List<ArchitectureDTO> rows = com.alibaba.fastjson.JSONObject.parseArray(data.getJSONArray("rows").toJSONString(), ArchitectureDTO.class);
+            return rows.size()>0?rows.get(0):null;
+        } 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);

+ 29 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateHisServiceImpl.java

@@ -0,0 +1,29 @@
+package com.zfjg.manage.service.impl.other;
+
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
+import com.zfjg.manage.mapper.other.EnforceObjArchitectureRelateHisMapper;
+import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateHisService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+/**
+ * <p>
+ * 单位与建筑的关联更正记录表 服务实现类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Service
+public class EnforceObjArchitectureRelateHisServiceImpl extends ServiceImpl<EnforceObjArchitectureRelateHisMapper, EnforceObjArchitectureRelateHis> implements IEnforceObjArchitectureRelateHisService {
+    @Autowired(required = false)
+    private EnforceObjArchitectureRelateHisMapper enforceObjArchitectureRelateHisMapper;
+
+
+    @Override
+    public List<EnforceObjArchitectureRelateHis> list(Map<String, Object> param) {
+        return enforceObjArchitectureRelateHisMapper.list(param);
+    }
+}

+ 98 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java

@@ -0,0 +1,98 @@
+package com.zfjg.manage.service.impl.other;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zfjg.common.security.utils.SecurityUtils;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelate;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateAdd;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateUpdate;
+import com.zfjg.manage.api.dto.other.EnforceObjCheckDTO;
+import com.zfjg.manage.api.search.other.EnforceObjArchitectureRelateQuery;
+import com.zfjg.manage.mapper.other.EnforceObjArchitectureRelateMapper;
+import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateHisService;
+import com.zfjg.manage.service.other.IEnforceObjArchitectureRelateService;
+import com.zfjg.system.api.domain.SysUser;
+import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.rmi.ServerException;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 单位与建筑的关联 服务实现类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+@Service
+public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<EnforceObjArchitectureRelateMapper, EnforceObjArchitectureRelate> implements IEnforceObjArchitectureRelateService {
+    @Autowired
+    private IEnforceObjArchitectureRelateHisService enforceObjArchitectureRelateHisService;
+    @Autowired(required = false)
+    private EnforceObjArchitectureRelateMapper enforceObjArchitectureRelateMapper;
+
+    @Override
+    public boolean insertEnforceObjArchitectureRelate(EnforceObjArchitectureRelateAdd add) {
+        SysUser user = SecurityUtils.getLoginUser().getSysUser();
+        EnforceObjArchitectureRelate param = new EnforceObjArchitectureRelate();
+        BeanUtils.copyProperties(add, param);
+        param.setCreateUserId(user.getUid());
+        param.setCreateUserName(user.getUserName());
+        param.setCreateTime(new Date());
+
+        EnforceObjArchitectureRelateHis his = new EnforceObjArchitectureRelateHis();
+        his.setEnforceObjId(add.getEnforceObjId());
+        his.setCreateUserId(user.getUid());
+        his.setCreateUserName(user.getUserName());
+        his.setCreateTime(new Date());
+        //第一次记录,没有变更前的原始值
+        his.setAfterArchitectureId(param.getArchitectureId());
+        his.setAfterArchitectureUuid(param.getArchitectureUuid());
+        enforceObjArchitectureRelateHisService.save(his);
+        return super.save(param);
+    }
+
+    @Override
+    @SneakyThrows
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateEnforceObjArchitectureRelate(EnforceObjArchitectureRelateUpdate param) {
+        SysUser user = SecurityUtils.getLoginUser().getSysUser();
+        EnforceObjArchitectureRelate dt = this.getOne(new LambdaQueryWrapper<EnforceObjArchitectureRelate>()
+                .eq(EnforceObjArchitectureRelate::getEnforceObjId, param.getEnforceObjId()));
+        if (Objects.equals(param.getArchitectureUuid(), dt.getArchitectureUuid())) {
+            throw new ServerException("选择建筑与之前一样!");
+        }
+        dt.setArchitectureId(param.getArchitectureId());
+        dt.setArchitectureUuid(param.getArchitectureUuid());
+        dt.setUpdateUserId(user.getUid());
+        dt.setUpdateUserName(user.getUserName());
+        dt.setUpdateTime(new Date());
+
+        EnforceObjArchitectureRelateHis his = new EnforceObjArchitectureRelateHis();
+        his.setEnforceObjId(dt.getEnforceObjId());
+        his.setCreateUserId(user.getUid());
+        his.setCreateUserName(user.getUserName());
+        his.setCreateTime(new Date());
+        his.setBeforeArchitectureId(dt.getArchitectureId());
+        his.setBeforeArchitectureUuid(dt.getArchitectureUuid());
+        his.setAfterArchitectureId(param.getArchitectureId());
+        his.setAfterArchitectureUuid(param.getArchitectureUuid());
+        enforceObjArchitectureRelateHisService.save(his);
+        return super.updateById(dt);
+    }
+
+    @Override
+    public List<EnforceObjCheckDTO> getEnforceObjList(EnforceObjArchitectureRelateQuery query) {
+        return enforceObjArchitectureRelateMapper.getEnforceObjList(query);
+    }
+
+
+}

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

@@ -1,13 +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.dto.other.ArchitectureDTO;
 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);
 
+    ArchitectureDTO getArchitectureDTO(String uuid);
+
 }

+ 19 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IEnforceObjArchitectureRelateHisService.java

@@ -0,0 +1,19 @@
+package com.zfjg.manage.service.other;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis;
+
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 单位与建筑的关联更正记录表 服务类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+public interface IEnforceObjArchitectureRelateHisService extends IService<EnforceObjArchitectureRelateHis> {
+    List<EnforceObjArchitectureRelateHis> list(Map<String, Object> param);
+}

+ 26 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/IEnforceObjArchitectureRelateService.java

@@ -0,0 +1,26 @@
+package com.zfjg.manage.service.other;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelate;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateAdd;
+import com.zfjg.manage.api.dto.other.EnforceObjArchitectureRelateUpdate;
+import com.zfjg.manage.api.dto.other.EnforceObjCheckDTO;
+import com.zfjg.manage.api.search.other.EnforceObjArchitectureRelateQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 单位与建筑的关联 服务类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-11-27
+ */
+public interface IEnforceObjArchitectureRelateService extends IService<EnforceObjArchitectureRelate> {
+    boolean insertEnforceObjArchitectureRelate(EnforceObjArchitectureRelateAdd add);
+    boolean updateEnforceObjArchitectureRelate(EnforceObjArchitectureRelateUpdate param);
+    List<EnforceObjCheckDTO> getEnforceObjList(EnforceObjArchitectureRelateQuery query);
+
+}

+ 10 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/other/EnforceObjArchitectureRelateHisMapper.xml

@@ -0,0 +1,10 @@
+<?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.other.EnforceObjArchitectureRelateHisMapper">
+
+    <select id="list" resultType="com.zfjg.manage.api.domain.other.EnforceObjArchitectureRelateHis">
+        select a.*
+        FROM enforce_obj_architecture_relate_his a
+    </select>
+
+</mapper>

+ 27 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/other/EnforceObjArchitectureRelateMapper.xml

@@ -0,0 +1,27 @@
+<?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.other.EnforceObjArchitectureRelateMapper">
+
+    <!-- 高楼码关联的单位(包含历史变更记录)   -->
+    <select id="getEnforceObjList" resultType="com.zfjg.manage.api.dto.other.EnforceObjCheckDTO">
+        SELECT
+        eo.id enforceObjId,
+        eo.enforce_obj_name,
+        COUNT( ej.id ) AS times
+        FROM
+        enforce_obj_architecture_relate_his eoarh
+        LEFT JOIN enforce_obj_architecture_relate eora ON eoarh.enforce_obj_id = eora.enforce_obj_id
+        INNER JOIN enforce_obj eo ON eoarh.enforce_obj_id = eo.id
+        LEFT JOIN enforce_job ej ON ej.enforce_obj_id = eo.id
+        where eo.is_deleted = 0
+            <if test="pm.architectureUuid  != null  and pm.architectureUuid != ''">
+                and eoarh.after_architecture_uuid = #{pm.architectureUuid}
+            </if>
+            <if test="pm.relateType  != null">
+                and eora.relate_type = #{pm.relateType}
+            </if>
+        GROUP BY eo.id,
+        eo.enforce_obj_name
+        order by eoarh.create_time desc
+    </select>
+</mapper>