From 74fd9f80be6b5a6edddf6631d0829d51590d1e56 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 16 八月 2024 14:42:47 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java                    |   52 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java             |  121 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml                              |   88 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java   |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java                  |   31 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java           |  304 +++++++++--
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml                                 |  463 ++++++++++-------
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java         |   34 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java              |   57 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java                         |   39 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java                |   31 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java           |   75 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java                      |   28 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java |   22 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml                        |  103 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java               |   34 +
 16 files changed, 1,229 insertions(+), 261 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java
index 6c4af43..b7a48f5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import com.dy.pipIrrGlobal.voBa.VoBlock;
+import com.dy.pipIrrGlobal.voBa.VoMapCoordinates;
+import com.dy.pipIrrGlobal.voBa.VoMapGraph;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -40,6 +43,34 @@
     List<BaBlock> selectSome(Map<?, ?> params) ;
 
     /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯璁板綍鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getBlocksCount(Map<?, ?> params) ;
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯
+     * @param params
+     * @return
+     */
+    List<VoBlock> getBlocks(Map<?, ?> params) ;
+
+    /**
+     * 鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃
+     * @param blockId
+     * @return
+     */
+    List<VoMapGraph> gertMapGraphsByBlockId(Long blockId);
+
+    /**
+     * 鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃
+     * @param graphId
+     * @return
+     */
+    List<VoMapCoordinates> getCoordinatesByGraphId(Long graphId);
+
+    /**
      * insert record to table
      * @param record the record
      * @return insert count
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java
new file mode 100644
index 0000000..3cef43f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrGlobal.daoBa;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-13 11:33
+ * @LastEditTime 2024-08-13 11:33
+ * @Description
+ */
+
+@Mapper
+public interface BaMapCoordinatesMapper extends BaseMapper<BaMapCoordinates> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(BaMapCoordinates record);
+
+    int insertSelective(BaMapCoordinates record);
+
+    BaMapCoordinates selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(BaMapCoordinates record);
+
+    int updateByPrimaryKey(BaMapCoordinates record);
+
+    /**
+     * 鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣
+     * @param blockId
+     * @return
+     */
+    int deleteByBlockId(Long blockId);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java
new file mode 100644
index 0000000..521f975
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrGlobal.daoBa;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaMapGraph;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-13 11:26
+ * @LastEditTime 2024-08-13 11:26
+ * @Description
+ */
+
+@Mapper
+public interface BaMapGraphMapper extends BaseMapper<BaMapGraph>{
+    int deleteByPrimaryKey(Long id);
+
+    int insert(BaMapGraph record);
+
+    int insertSelective(BaMapGraph record);
+
+    BaMapGraph selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(BaMapGraph record);
+
+    int updateByPrimaryKey(BaMapGraph record);
+
+    /**
+     * 鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰
+     * @param blockId
+     * @return
+     */
+    int deleteByBlockId(Long blockId);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java
new file mode 100644
index 0000000..1ba9b76
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java
@@ -0,0 +1,57 @@
+package com.dy.pipIrrGlobal.pojoBa;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.math.BigDecimal;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-13 11:33
+ * @LastEditTime 2024-08-13 11:33
+ * @Description
+ */
+/**
+ * 鍦板浘鍥惧舰鍧愭爣
+ */
+
+@TableName(value="ba_map_coordinates", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaMapCoordinates implements BaseEntity {
+    public static final long serialVersionUID = 202408131135001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 鍥惧舰ID
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鎵�灞炲浘褰笉鑳戒负绌�")
+    private Long graphId;
+
+    /**
+    * 绾害
+    */
+    private BigDecimal lat;
+
+    /**
+    * 缁忓害
+    */
+    private BigDecimal lng;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java
new file mode 100644
index 0000000..239bf99
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java
@@ -0,0 +1,52 @@
+package com.dy.pipIrrGlobal.pojoBa;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-13 11:26
+ * @LastEditTime 2024-08-13 11:26
+ * @Description
+ */
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * 鍦板浘鍥惧舰琛�
+ */
+
+@TableName(value="ba_map_graph", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class BaMapGraph implements BaseEntity {
+    public static final long serialVersionUID = 202408131130001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 鐗囧尯ID
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鎵�灞炵墖鍖轰笉鑳戒负绌�")
+    private Long blockId;
+
+    /**
+    * 鍥惧舰绫诲瀷;1-CircleMarker 锛�2-Polygon 锛�3-Polyline
+    */
+    @NotNull(message = "鍥惧舰绫诲瀷涓嶈兘涓虹┖")
+    private Byte graphType;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java
new file mode 100644
index 0000000..e26ffa2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java
@@ -0,0 +1,39 @@
+package com.dy.pipIrrGlobal.voBa;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-14 16:05
+ * @LastEditTime 2024-08-14 16:05
+ * @Description 鐗囧尯瑙嗗浘瀵硅薄
+ */
+
+@Data
+@JsonPropertyOrder({"id","name","header","phone","area","color","remark","deleted"})
+public class VoBlock {
+    private static final long serialVersionUID = 202408141606001L;
+
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long id;
+
+    private String name;
+
+    private String header;
+
+    private String phone;
+
+    private Integer area;
+
+    private String color;
+
+    private String remark;
+
+    private Integer deleted;
+
+    private JSONArray graphs;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java
new file mode 100644
index 0000000..bc4dd1d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java
@@ -0,0 +1,31 @@
+package com.dy.pipIrrGlobal.voBa;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-14 19:37
+ * @LastEditTime 2024-08-14 19:37
+ * @Description 鍦板浘鍥惧舰鍧愭爣瑙嗗浘瀵硅薄
+ */
+
+@Data
+public class VoMapCoordinates {
+    private static final long serialVersionUID = 202408141938001L;
+
+    /**
+     * 绾害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lat;
+
+    /**
+     * 缁忓害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lng;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java
new file mode 100644
index 0000000..aab00e5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.voBa;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-14 16:56
+ * @LastEditTime 2024-08-14 16:56
+ * @Description 鍦板浘鍥惧舰瑙嗗浘瀵硅薄
+ */
+
+@Data
+public class VoMapGraph {
+    private static final long serialVersionUID = 202408141657001L;
+
+    /**
+     * 鍦板浘鍥惧舰ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long graphId;
+
+    /**
+     * 鍦板浘鍥惧舰绫诲瀷
+     */
+    private String type;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
index f2a1069..ae58fd7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
@@ -1,207 +1,282 @@
 <?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.dy.pipIrrGlobal.daoBa.BaBlockMapper">
-  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaBlock">
-    <!--@mbg.generated-->
-    <!--@Table ba_block-->
-    <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="name" jdbcType="VARCHAR" property="name" />
-    <result column="header" jdbcType="VARCHAR" property="header" />
-    <result column="phone" jdbcType="VARCHAR" property="phone" />
-    <result column="area" jdbcType="INTEGER" property="area" />
-    <result column="color" jdbcType="VARCHAR" property="color" />
-    <result column="remark" jdbcType="VARCHAR" property="remark" />
-    <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Deleted"/>
-  </resultMap>
-  <sql id="Base_Column_List">
-    <!--@mbg.generated-->
-    id, `name`, `header`, phone, area, color, remark, deleted
-  </sql>
-  <sql id="part_Column_List">
-    <!--@mbg.generated-->
-    id, `name`
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select
-    <include refid="Base_Column_List" />
-    from ba_block
-    where id = #{id,jdbcType=BIGINT} and deleted = 0
-  </select>
-
-  <select id="selectAll" resultMap="BaseResultMap">
-    select
-<!--    <include refid="part_Column_List" />-->
-    <include refid="Base_Column_List" />
-    from ba_block
-    WHERE deleted = 0
-  </select>
-
-<select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long">
-    select
-    count(*)
-    from ba_block
-      <trim prefix="where " suffixOverrides="and">
-        <if test="name != null and name != ''">
-          name like concat('%', #{name}, '%') and
-        </if>
-        <if test="header != null and header != ''">
-          header like concat('%', #{header}, '%') and
-        </if>
-        <if test="phone != null and phone != ''">
-          phone = #{phone,jdbcType=VARCHAR} and
-        </if>
-        <if test="area != null">
-          area = #{area,jdbcType=INTEGER} and
-        </if>
-      </trim>
-  </select>
-  <select id="selectSome" parameterType="java.util.Map" resultMap="BaseResultMap">
-    <!--@mbg.generated-->
-    select
-    <include refid="Base_Column_List" />
-    from ba_block
-    <trim prefix="where " suffixOverrides="and">
-      deleted = 0 and
-      <if test="name != null and name != ''">
-        name like concat('%', #{name}, '%') and
-      </if>
-      <if test="header != null and header != ''">
-        header = #{header,jdbcType=VARCHAR} and
-      </if>
-      <if test="phone != null and phone != ''">
-        phone = #{phone,jdbcType=VARCHAR} and
-      </if>
-      <if test="area != null">
-        area = #{area,jdbcType=INTEGER} and
-      </if>
-    </trim>
-    order by id DESC
-    <trim prefix="limit " >
-      <if test="start != null and count != null">
-        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
-      </if>
-    </trim>
-  </select>
-
-  <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
-    <!--@mbg.generated-->
-    insert into ba_block (id, `name`, `header`, phone, area, color, remark, deleted)
-    values (#{id,jdbcType=BIGINT},
-            #{name,jdbcType=VARCHAR},
-            #{header,jdbcType=VARCHAR},
-            #{phone,jdbcType=VARCHAR},
-            #{area,jdbcType=INTEGER},
-            #{color,jdbcType=VARCHAR},
-            #{remark,jdbcType=VARCHAR},
-            #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT})
-  </insert>
-  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
-    <!--@mbg.generated-->
-    insert into ba_block
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+        <!--@mbg.generated-->
+        <!--@Table ba_block-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="header" jdbcType="VARCHAR" property="header"/>
+        <result column="phone" jdbcType="VARCHAR" property="phone"/>
+        <result column="area" jdbcType="INTEGER" property="area"/>
+        <result column="color" jdbcType="VARCHAR" property="color"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler"
+                javaType="com.dy.common.mybatis.envm.Deleted"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
         id,
-      </if>
-      <if test="name != null">
         `name`,
-      </if>
-      <if test="header != null">
         `header`,
-      </if>
-      <if test="phone != null">
         phone,
-      </if>
-      <if test="area != null">
         area,
-      </if>
-      <if test="color != null">
         color,
-      </if>
-      <if test="remark != null">
         remark,
-      </if>
-     <if test="deleted != null">
-       deleted,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=BIGINT},
-      </if>
-      <if test="name != null">
-        #{name,jdbcType=VARCHAR},
-      </if>
-      <if test="header != null">
-        #{header,jdbcType=VARCHAR},
-      </if>
-      <if test="phone != null">
-        #{phone,jdbcType=VARCHAR},
-      </if>
-      <if test="area != null">
-        #{area,jdbcType=INTEGER},
-      </if>
-      <if test="color != null">
-        #{color,jdbcType=VARCHAR},
-      </if>
-      <if test="remark != null">
-        #{remark,jdbcType=VARCHAR},
-      </if>
-      <if test="deleted != null">
-        #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
-    <!--@mbg.generated-->
-    update ba_block
-    <set>
-      <if test="name != null">
-        `name` = #{name,jdbcType=VARCHAR},
-      </if>
-      <if test="header != null">
-        `header` = #{header,jdbcType=VARCHAR},
-      </if>
-      <if test="phone != null">
-        phone = #{phone,jdbcType=VARCHAR},
-      </if>
-      <if test="area != null">
-        area = #{area,jdbcType=INTEGER},
-      </if>
-      <if test="color != null">
-        color = #{color,jdbcType=VARCHAR},
-      </if>
-      <if test="remark != null">
-        remark = #{remark,jdbcType=VARCHAR},
-      </if>
-      <if test="deleted != null">
-        deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
-      </if>
-    </set>
-    where id = #{id,jdbcType=BIGINT}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
-    <!--@mbg.generated-->
-    update ba_block
-    set `name` = #{name,jdbcType=VARCHAR},
-      `header` = #{header,jdbcType=VARCHAR},
-      phone = #{phone,jdbcType=VARCHAR},
-      area = #{area,jdbcType=INTEGER},
-      color = #{color,jdbcType=VARCHAR},
-      remark = #{remark,jdbcType=VARCHAR},
-      deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}
-    where id = #{id,jdbcType=BIGINT}
-  </update>
+        deleted
+    </sql>
+    <sql id="part_Column_List">
+        <!--@mbg.generated-->
+        id,
+        `name`
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from ba_block
+        where id = #{id,jdbcType=BIGINT}
+          and deleted = 0
+    </select>
 
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    delete from ba_block
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
-  <delete id="deleteLogicById" parameterType="java.lang.Long">
-    <!--@mbg.generated-->
-    update ba_block set deleted = 1
-    where id = #{id,jdbcType=BIGINT}
-  </delete>
+    <select id="selectAll" resultMap="BaseResultMap">
+        select
+        <!--    <include refid="part_Column_List" />-->
+        <include refid="Base_Column_List"/>
+        from ba_block
+        WHERE deleted = 0
+    </select>
 
+    <select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long">
+        select count(*)
+        from ba_block
+        <trim prefix="where " suffixOverrides="and">
+            <if test="name != null and name != ''">
+                name like concat('%', #{name}, '%')
+                  and
+            </if>
+            <if test="header != null and header != ''">
+                header like concat('%', #{header}, '%')
+                  and
+            </if>
+            <if test="phone != null and phone != ''">
+                phone = #{phone,jdbcType=VARCHAR}
+                  and
+            </if>
+            <if test="area != null">
+                area = #{area,jdbcType=INTEGER} and
+            </if>
+        </trim>
+    </select>
+    <select id="selectSome" parameterType="java.util.Map" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from ba_block
+        <trim prefix="where " suffixOverrides="and">
+            deleted = 0
+              and
+            <if test="name != null and name != ''">
+                name like concat('%', #{name}, '%')
+                  and
+            </if>
+            <if test="header != null and header != ''">
+                header = #{header,jdbcType=VARCHAR}
+                  and
+            </if>
+            <if test="phone != null and phone != ''">
+                phone = #{phone,jdbcType=VARCHAR}
+                  and
+            </if>
+            <if test="area != null">
+                area = #{area,jdbcType=INTEGER} and
+            </if>
+        </trim>
+        order by id DESC
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
+
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯璁板綍鏁伴噺-->
+    <select id="getBlocksCount" resultType="java.lang.Long">
+        SELECT COUNT(*) AS recordCount
+        FROM ba_block
+        <where>
+            AND deleted = 0
+            <if test="name != null and name != ''">
+                AND name LIKE CONCAT('%', #{name}, '%')
+            </if>
+        </where>
+    </select>
+
+    <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯-->
+    <select id="getBlocks" resultType="com.dy.pipIrrGlobal.voBa.VoBlock">
+        SELECT id,
+               name,
+               header,
+               phone,
+               area,
+               color,
+               remark,
+               deleted
+        FROM ba_block
+        <where>
+            AND deleted = 0
+            <if test="name != null and name != ''">
+                AND name LIKE CONCAT('%', #{name}, '%')
+            </if>
+        </where>
+        ORDER BY id
+        LIMIT #{pageCurr}, #{pageSize}
+<!--        <trim prefix="limit ">-->
+<!--            <if test="start != null and count != null">-->
+<!--                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}-->
+<!--            </if>-->
+<!--        </trim>-->
+    </select>
+
+    <!--鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃-->
+    <select id="gertMapGraphsByBlockId" resultType="com.dy.pipIrrGlobal.voBa.VoMapGraph">
+        SELECT id      AS graphId,
+               CASE
+                   WHEN graph_type = 1 THEN 'CircleMarker'
+                   WHEN graph_type = 2 THEN 'Polygon'
+                   WHEN graph_type = 3 THEN 'Polyline'
+                   END AS type
+        FROM ba_map_graph
+        WHERE block_id = #{blockId}
+    </select>
+
+    <!--鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃-->
+    <select id="getCoordinatesByGraphId" resultType="com.dy.pipIrrGlobal.voBa.VoMapCoordinates">
+        SELECT
+            lat,lng
+        FROM ba_map_coordinates
+        WHERE graph_id = #{graphId}
+    </select>
+
+    <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+        <!--@mbg.generated-->
+        insert into ba_block (id, `name`, `header`, phone, area, color, remark, deleted)
+        values (#{id,jdbcType=BIGINT},
+                #{name,jdbcType=VARCHAR},
+                #{header,jdbcType=VARCHAR},
+                #{phone,jdbcType=VARCHAR},
+                #{area,jdbcType=INTEGER},
+                #{color,jdbcType=VARCHAR},
+                #{remark,jdbcType=VARCHAR},
+                #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+        <!--@mbg.generated-->
+        insert into ba_block
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="name != null">
+                `name`,
+            </if>
+            <if test="header != null">
+                `header`,
+            </if>
+            <if test="phone != null">
+                phone,
+            </if>
+            <if test="area != null">
+                area,
+            </if>
+            <if test="color != null">
+                color,
+            </if>
+            <if test="remark != null">
+                remark,
+            </if>
+            <if test="deleted != null">
+                deleted,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="name != null">
+                #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="header != null">
+                #{header,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="area != null">
+                #{area,jdbcType=INTEGER},
+            </if>
+            <if test="color != null">
+                #{color,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="deleted != null">
+                #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+        <!--@mbg.generated-->
+        update ba_block
+        <set>
+            <if test="name != null">
+                `name` = #{name,jdbcType=VARCHAR},
+            </if>
+            <if test="header != null">
+                `header` = #{header,jdbcType=VARCHAR},
+            </if>
+            <if test="phone != null">
+                phone = #{phone,jdbcType=VARCHAR},
+            </if>
+            <if test="area != null">
+                area = #{area,jdbcType=INTEGER},
+            </if>
+            <if test="color != null">
+                color = #{color,jdbcType=VARCHAR},
+            </if>
+            <if test="remark != null">
+                remark = #{remark,jdbcType=VARCHAR},
+            </if>
+            <if test="deleted != null">
+                deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+        <!--@mbg.generated-->
+        update ba_block
+        set `name`   = #{name,jdbcType=VARCHAR},
+            `header` = #{header,jdbcType=VARCHAR},
+            phone    = #{phone,jdbcType=VARCHAR},
+            area     = #{area,jdbcType=INTEGER},
+            color    = #{color,jdbcType=VARCHAR},
+            remark   = #{remark,jdbcType=VARCHAR},
+            deleted  = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from ba_block
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <delete id="deleteLogicById" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        update ba_block
+        set deleted = 1
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml
new file mode 100644
index 0000000..a245416
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml
@@ -0,0 +1,103 @@
+<?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.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates">
+        <!--@mbg.generated-->
+        <!--@Table ba_map_coordinates-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="graph_id" jdbcType="BIGINT" property="graphId"/>
+        <result column="lat" jdbcType="DECIMAL" property="lat"/>
+        <result column="lng" jdbcType="DECIMAL" property="lng"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id,
+        graph_id,
+        lat,
+        lng
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from ba_map_coordinates
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from ba_map_coordinates
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates">
+        <!--@mbg.generated-->
+        insert into ba_map_coordinates (id, graph_id, lat,
+                                        lng)
+        values (#{id,jdbcType=BIGINT}, #{graphId,jdbcType=BIGINT}, #{lat,jdbcType=DECIMAL},
+                #{lng,jdbcType=DECIMAL})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates">
+        <!--@mbg.generated-->
+        insert into ba_map_coordinates
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="graphId != null">
+                graph_id,
+            </if>
+            <if test="lat != null">
+                lat,
+            </if>
+            <if test="lng != null">
+                lng,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="graphId != null">
+                #{graphId,jdbcType=BIGINT},
+            </if>
+            <if test="lat != null">
+                #{lat,jdbcType=DECIMAL},
+            </if>
+            <if test="lng != null">
+                #{lng,jdbcType=DECIMAL},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates">
+        <!--@mbg.generated-->
+        update ba_map_coordinates
+        <set>
+            <if test="graphId != null">
+                graph_id = #{graphId,jdbcType=BIGINT},
+            </if>
+            <if test="lat != null">
+                lat = #{lat,jdbcType=DECIMAL},
+            </if>
+            <if test="lng != null">
+                lng = #{lng,jdbcType=DECIMAL},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates">
+        <!--@mbg.generated-->
+        update ba_map_coordinates
+        set graph_id = #{graphId,jdbcType=BIGINT},
+            lat      = #{lat,jdbcType=DECIMAL},
+            lng      = #{lng,jdbcType=DECIMAL}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣-->
+    <delete id="deleteByBlockId" parameterType="java.lang.Long">
+        DELETE coo
+        FROM ba_map_coordinates coo
+                 INNER JOIN ba_map_graph gra ON gra.id = coo.graph_id
+        WHERE gra.block_id = #{blockId}
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml
new file mode 100644
index 0000000..e7586ae
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml
@@ -0,0 +1,88 @@
+<?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.dy.pipIrrGlobal.daoBa.BaMapGraphMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaMapGraph">
+        <!--@mbg.generated-->
+        <!--@Table ba_map_graph-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="block_id" jdbcType="BIGINT" property="blockId"/>
+        <result column="graph_type" jdbcType="TINYINT" property="graphType"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id,
+        block_id,
+        graph_type
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from ba_map_graph
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from ba_map_graph
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph">
+        <!--@mbg.generated-->
+        insert into ba_map_graph (id, block_id, graph_type)
+        values (#{id,jdbcType=BIGINT}, #{blockId,jdbcType=BIGINT}, #{graphType,jdbcType=TINYINT})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph">
+        <!--@mbg.generated-->
+        insert into ba_map_graph
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="blockId != null">
+                block_id,
+            </if>
+            <if test="graphType != null">
+                graph_type,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="blockId != null">
+                #{blockId,jdbcType=BIGINT},
+            </if>
+            <if test="graphType != null">
+                #{graphType,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph">
+        <!--@mbg.generated-->
+        update ba_map_graph
+        <set>
+            <if test="blockId != null">
+                block_id = #{blockId,jdbcType=BIGINT},
+            </if>
+            <if test="graphType != null">
+                graph_type = #{graphType,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph">
+        <!--@mbg.generated-->
+        update ba_map_graph
+        set block_id   = #{blockId,jdbcType=BIGINT},
+            graph_type = #{graphType,jdbcType=TINYINT}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰-->
+    <delete id="deleteByBlockId" parameterType="java.lang.Long">
+        DELETE
+        FROM ba_map_graph
+        WHERE block_id = #{blockId}
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
index db4b1fe..d528969 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
@@ -1,12 +1,20 @@
 package com.dy.pipIrrBase.block;
 
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.mybatis.envm.Deleted;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrBase.block.dto.Block;
+import com.dy.pipIrrBase.block.enums.graphTypeENUM;
+import com.dy.pipIrrBase.result.SystemResultCode;
 import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates;
+import com.dy.pipIrrGlobal.pojoBa.BaMapGraph;
+import com.dy.pipIrrGlobal.voBa.VoBlock;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -17,28 +25,31 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 @Slf4j
 @Tag(name = "鐗囧尯绠$悊", description = "鐗囧尯澧炲垹鏀规煡绛夋搷浣�")
 @RestController
-@RequestMapping(path="block")
+@RequestMapping(path = "block")
 @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
 public class BlockCtrl {
 
-    private BlockSv sv ;
+    private BlockSv sv;
 
     @Autowired
-    private void setSv(BlockSv sv){
-        this.sv = sv ;
+    private void setSv(BlockSv sv) {
+        this.sv = sv;
     }
 
     /**
      * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹�
+     *
      * @return 鎵�鏈夌墖鍖烘暟鎹�
      */
     @Operation(summary = "鑾峰緱鍏ㄩ儴鐗囧尯", description = "杩斿洖鍏ㄩ儴鐗囧尯鏁版嵁")
@@ -52,43 +63,57 @@
     })
     @GetMapping(path = "all")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<BaBlock>>> all(){
+    public BaseResponse<QueryResultVo<List<BaBlock>>> all() {
         try {
-            QueryResultVo<List<BaBlock>> res = this.sv.selectAll() ;
+            QueryResultVo<List<BaBlock>> res = this.sv.selectAll();
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
-     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹�
+     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹� 2024-08-14搴熷純
+     *
      * @return 鎵�鏈夌墖鍖烘暟鎹�
      */
-    @Operation(summary = "鑾峰緱涓�椤电墖鍖�", description = "杩斿洖涓�椤电墖鍖烘暟鎹�")
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "杩斿洖涓�椤电墖鍖烘暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
-                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
-                            schema = @Schema(implementation = BaBlock.class))}
-            )
-    })
-    @PostMapping(path = "some", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(path = "some2", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody QueryVo vo){
+    public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody QueryVo vo) {
         try {
-            QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo) ;
+            QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo);
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯锛�2024-08-14鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯鍒嗛〉鏌ヨ
+     *
+     * @param qo
+     * @param bindingResult
+     * @return
+     */
+    @GetMapping(path = "/some")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoBlock>>> getBlocks(@Valid QueryVo qo, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        try {
+            return BaseResponseUtils.buildSuccess(this.sv.getBlocks(qo));
+        } catch (Exception e) {
+            log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
         }
     }
 
     /**
      * 寰楀埌涓�涓墖鍖烘暟鎹�
+     *
      * @return 涓�涓墖鍖烘暟鎹�
      */
     @Operation(summary = "涓�涓墖鍖�", description = "寰楀埌涓�涓墖鍖烘暟鎹�")
@@ -103,12 +128,13 @@
     //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE)
     @GetMapping(path = "one")
     @SsoAop()
-    public BaseResponse<BaBlock> one(Long id){
+    public BaseResponse<BaBlock> one(Long id) {
         return BaseResponseUtils.buildSuccess(this.sv.selectById(id));
     }
 
     /**
      * 淇濆瓨鐗囧尯
+     *
      * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄
      * @return 鏄惁鎴愬姛
      */
@@ -122,67 +148,210 @@
             )
     })
     @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> save(@RequestBody @Valid BaBlock po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    //public BaseResponse<Boolean> save(@RequestBody @Valid BaBlock po, BindingResult bindingResult){
+    public BaseResponse<Boolean> save(@RequestBody @Valid Block po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
-        po.id = null ;
-        po.deleted = Deleted.NO;
-        int count;
-        try {
-            count = this.sv.save(po);
-        } catch (Exception e) {
-            log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+
+        // 娣诲姞鐗囧尯璁板綍
+        BaBlock baBlock = new BaBlock();
+        baBlock.setName(po.getName());
+        baBlock.setHeader(po.getHeader());
+        baBlock.setPhone(po.getPhone());
+        baBlock.setArea(po.getArea());
+        baBlock.setColor(po.getColor());
+        baBlock.setRemark(po.getRemark());
+        baBlock.deleted = Deleted.NO;
+        Long blockId = Optional.ofNullable(this.sv.save(baBlock)).orElse(0L);
+        if (blockId.equals(0)) {
+            return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+
+        JSONArray graphs = po.getGraphs();
+        for (int i = 0; i < graphs.size(); i++) {
+            JSONObject graph = graphs.getJSONObject(i);
+
+            // 娣诲姞鍦板浘鍥惧舰璁板綍
+            BaMapGraph baMapGraph = new BaMapGraph();
+            baMapGraph.setBlockId(blockId);
+            switch (graph.getString("type")) {
+                case "CircleMarker":
+                    baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode());
+                    break;
+                case "Polygon":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode());
+                    break;
+                case "Polyline":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode());
+                    break;
+            }
+            Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L);
+            if (graphId.equals(0)) {
+                return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+            }
+
+            // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍
+            JSONArray coordinates = graph.getJSONArray("coordinates");
+            for (int j = 0; j < coordinates.size(); j++) {
+                JSONArray coordinate = coordinates.getJSONArray(j);
+                for (int k = 0; k < coordinate.size(); k++) {
+                    JSONObject point = coordinate.getJSONObject(k);
+
+                    BaMapCoordinates mapCoordinates = new BaMapCoordinates();
+                    mapCoordinates.setGraphId(graphId);
+                    mapCoordinates.setLat(point.getBigDecimal("lat"));
+                    mapCoordinates.setLng(point.getBigDecimal("lng"));
+                    Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L);
+                    if (coordinateId.equals(0)) {
+                        return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+                    }
+                }
+            }
         }
+        return BaseResponseUtils.buildSuccess(true);
+
+        //po.id = null ;
+        //po.deleted = Deleted.NO;
+        //int count;
+        //try {
+        //    count = this.sv.save(po);
+        //} catch (Exception e) {
+        //    log.error("淇濆瓨鐗囧尯寮傚父", e);
+        //    return BaseResponseUtils.buildException(e.getMessage()) ;
+        //}
+        //if(count <= 0){
+        //    return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        //}else{
+        //    return BaseResponseUtils.buildSuccess(true) ;
+        //}
     }
 
     /**
-     * 缂栬緫淇敼鐗囧尯
+     * 缂栬緫淇敼鐗囧尯 2024-08-15 浣滃簾
+     *
      * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄
      * @return 鏄惁鎴愬姛
      */
-    @Operation(summary = "缂栬緫淇敼鐗囧尯", description = "鎻愪氦鐗囧尯鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇敼")
-    @ApiResponses(value = {
-            @ApiResponse(
-                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
-                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
-                            schema = @Schema(implementation = Boolean.class))}
-            )
-    })
-    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(path = "update2", consumes = MediaType.APPLICATION_JSON_VALUE)
     @SsoAop()
-    public BaseResponse<Boolean> update(@RequestBody @Valid BaBlock po, BindingResult bindingResult){
-        if(bindingResult != null && bindingResult.hasErrors()){
+    public BaseResponse<Boolean> update2(@RequestBody @Valid BaBlock po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
-        if(po.id == null){
-            return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D") ;
+        if (po.id == null) {
+            return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D");
         }
         int count;
         try {
             count = this.sv.update(po);
         } catch (Exception e) {
             log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+        } else {
+            return BaseResponseUtils.buildSuccess(true);
         }
     }
 
+    /**
+     * 淇敼鐗囧尯淇℃伅锛�2024-08-15鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯淇敼鎺ュ彛
+     *
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> update(@RequestBody @Valid Block po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        Long blockId = po.getId();
+        if (blockId == null) {
+            return BaseResponseUtils.buildErrorMsg(SystemResultCode.THE_BLOCK_NOT_EXIST.getMessage());
+        }
+
+        // 淇敼鐗囧尯淇℃伅
+        BaBlock baBlock = new BaBlock();
+        baBlock.setId(po.getId());
+        baBlock.setName(po.getName());
+        baBlock.setHeader(po.getHeader());
+        baBlock.setPhone(po.getPhone());
+        baBlock.setArea(po.getArea());
+        baBlock.setColor(po.getColor());
+        baBlock.setRemark(po.getRemark());
+        baBlock.setDeleted(po.getDeleted());
+        int count;
+        try {
+            count = this.sv.update(baBlock);
+        } catch (Exception e) {
+            log.error("淇濆瓨鐗囧尯寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+        }
+
+        // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣
+        this.sv.deleteMapCoordinates(blockId);
+        // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰�
+        this.sv.deleteMapGraph(blockId);
+
+        JSONArray graphs = po.getGraphs();
+        for (int i = 0; i < graphs.size(); i++) {
+            JSONObject graph = graphs.getJSONObject(i);
+
+            // 娣诲姞鍦板浘鍥惧舰璁板綍
+            BaMapGraph baMapGraph = new BaMapGraph();
+            baMapGraph.setBlockId(blockId);
+            switch (graph.getString("type")) {
+                case "CircleMarker":
+                    baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode());
+                    break;
+                case "Polygon":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode());
+                    break;
+                case "Polyline":
+                    baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode());
+                    break;
+            }
+            Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L);
+            if (graphId.equals(0)) {
+                return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+            }
+
+            // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍
+            JSONArray coordinates = graph.getJSONArray("coordinates");
+            for (int j = 0; j < coordinates.size(); j++) {
+                JSONArray coordinate = coordinates.getJSONArray(j);
+                for (int k = 0; k < coordinate.size(); k++) {
+                    JSONObject point = coordinate.getJSONObject(k);
+
+                    BaMapCoordinates mapCoordinates = new BaMapCoordinates();
+                    mapCoordinates.setGraphId(graphId);
+                    mapCoordinates.setLat(point.getBigDecimal("lat"));
+                    mapCoordinates.setLng(point.getBigDecimal("lng"));
+                    Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L);
+                    if (coordinateId.equals(0)) {
+                        return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage());
+                    }
+                }
+            }
+        }
+
+        return BaseResponseUtils.buildSuccess(true);
+    }
 
     /**
      * 鍒犻櫎鐗囧尯
+     *
      * @param id 鐗囧尯ID
      * @return 鏄惁鎴愬姛
      */
@@ -195,24 +364,31 @@
                             schema = @Schema(implementation = Boolean.class))}
             )
     })
+
     //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE)
     @GetMapping(path = "delete")
+    @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> delete(Long id){
-        if(id == null){
-            return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖") ;
+    public BaseResponse<Boolean> delete(Long id) {
+        if (id == null) {
+            return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖");
         }
         int count;
         try {
             count = this.sv.delete(id);
         } catch (Exception e) {
             log.error("淇濆瓨鐗囧尯寮傚父", e);
-            return BaseResponseUtils.buildException(e.getMessage()) ;
+            return BaseResponseUtils.buildException(e.getMessage());
         }
-        if(count <= 0){
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
-        }else{
-            return BaseResponseUtils.buildSuccess(true) ;
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
         }
+
+        // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣
+        this.sv.deleteMapCoordinates(id);
+        // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰�
+        this.sv.deleteMapGraph(id);
+
+        return BaseResponseUtils.buildSuccess(true);
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
index 89f37a1..1c6b508 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
@@ -1,8 +1,18 @@
 package com.dy.pipIrrBase.block;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoBa.BaBlockMapper;
+import com.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper;
+import com.dy.pipIrrGlobal.daoBa.BaMapGraphMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates;
+import com.dy.pipIrrGlobal.pojoBa.BaMapGraph;
+import com.dy.pipIrrGlobal.voBa.VoBlock;
+import com.dy.pipIrrGlobal.voBa.VoMapCoordinates;
+import com.dy.pipIrrGlobal.voBa.VoMapGraph;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +32,12 @@
     private void setDao(BaBlockMapper dao){
         this.dao = dao;
     }
+
+    @Autowired
+    private BaMapGraphMapper baMapGraphMapper;
+
+    @Autowired
+    private BaMapCoordinatesMapper baMapCoordinatesMapper;
 
     /**
      * 寰楀埌涓�涓墖鍖�
@@ -62,13 +78,76 @@
     }
 
     /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯锛�2024-08-14鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯鍒嗛〉鏌ヨ
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoBlock>> getBlocks(QueryVo vo){
+        vo.setPageCurr((vo.pageCurr -1) * vo.pageSize);
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
+        Long itemTotal = this.dao.getBlocksCount(params) ;
+
+        JSONArray array_blocks = null;
+        JSONArray array_mapGraphs = null;
+
+        // 鑾峰彇鐗囧尯鍒楄〃
+        List<VoBlock> list_blocks = this.dao.getBlocks(params);
+        if(list_blocks != null && list_blocks.size() > 0) {
+            //JSONArray array_blocks = (JSONArray) JSON.toJSON(list_blocks);
+            array_blocks = (JSONArray) JSON.toJSON(list_blocks);
+            for (int i = 0; i < array_blocks.size(); i++) {
+                JSONObject job_block = array_blocks.getJSONObject(i);
+                Long blockId = job_block.getLong("id");
+
+                // 鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃
+                List<VoMapGraph> list_mapGraphs = this.dao.gertMapGraphsByBlockId(blockId);
+                if(list_mapGraphs != null && list_mapGraphs.size() > 0) {
+                    array_mapGraphs = (JSONArray) JSON.toJSON(list_mapGraphs);
+                    for (int j = 0; j < array_mapGraphs.size(); j++) {
+                        JSONObject job_mapGraph = array_mapGraphs.getJSONObject(j);
+                        job_mapGraph = array_mapGraphs.getJSONObject(j);
+                        Long graphId = job_mapGraph.getLong("graphId");
+                        String graphType = job_mapGraph.getString("type");
+
+                        // 鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃锛屽苟娣诲姞鍒板湴鍥惧浘褰㈠璞′腑
+                        List<VoMapCoordinates> list_mapCoordinates = this.dao.getCoordinatesByGraphId(graphId);
+                        if(list_mapCoordinates != null && list_mapCoordinates.size() > 0) {
+                            JSONArray array_mapCoordinates = (JSONArray) JSON.toJSON(list_mapCoordinates);
+
+                            JSONArray[] arrays = new JSONArray[1];
+                            arrays[0] = array_mapCoordinates;
+                            job_mapGraph.put("coordinates", arrays);
+                        }
+                    }
+                }
+
+                // 灏嗗湴鍥惧浘褰㈡暟缁勬坊鍔犲埌鐗囧尯涓�
+                if(array_mapGraphs != null && array_mapGraphs.size() > 0) {
+                    job_block.put("graphs", array_mapGraphs);
+                }
+            }
+        }
+
+        QueryResultVo<List<VoBlock>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = vo.pageSize ;
+        rsVo.pageCurr = vo.pageCurr ;
+        rsVo.calculateAndSet(itemTotal, params);
+        //rsVo.obj = this.dao.getBlocks(params) ;
+        rsVo.obj = array_blocks.toList(VoBlock.class);
+
+        return rsVo ;
+    }
+
+    /**
      * 淇濆瓨瀹炰綋
      * @param po 瀹炰綋
      * @return 鏁伴噺
      */
     @Transactional
-    public int save(BaBlock po){
-        return this.dao.putin(po) ;
+    public Long save(BaBlock po){
+        //return this.dao.putin(po) ;
+        this.dao.putin(po);
+        return po.getId();
     }
 
     /**
@@ -91,4 +170,42 @@
         return this.dao.deleteLogicById(id) ;
     }
 
+    /**
+     * 娣诲姞鍦板浘鍥惧舰
+     * @param po
+     * @return
+     */
+    public Long addMapGraph(BaMapGraph po) {
+        this.baMapGraphMapper.insert(po);
+        return po.getId();
+    }
+
+    /**
+     * 娣诲姞鍦板浘鍥惧舰鍧愭爣
+     * @param po
+     * @return
+     */
+    public Long addMapCoordinate(BaMapCoordinates po) {
+        this.baMapCoordinatesMapper.insert(po);
+        return po.getId();
+    };
+
+    /**
+     * 鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰
+     * @param blockId
+     * @return
+     */
+    public int deleteMapGraph(Long blockId) {
+        return this.baMapGraphMapper.deleteByBlockId(blockId);
+    }
+
+    /**
+     * 鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣
+     * @param blockId
+     * @return
+     */
+    public int deleteMapCoordinates(Long blockId) {
+        return this.baMapCoordinatesMapper.deleteByBlockId(blockId);
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java
new file mode 100644
index 0000000..50fda27
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java
@@ -0,0 +1,75 @@
+package com.dy.pipIrrBase.block.dto;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.dy.common.mybatis.envm.Deleted;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-13 11:39
+ * @LastEditTime 2024-08-13 11:39
+ * @Description 鐗囧尯瀵硅薄
+ */
+
+@Data
+public class Block {
+    public static final long serialVersionUID = 202408131140001L;
+
+    /**
+     * 鐗囧尯ID
+     */
+    private Long id;
+
+    /**
+     * 鐗囧尯鍚嶇О
+     */
+    @NotBlank(message = "鐗囧尯鍚嶇О涓嶈兘涓虹┖")
+    private String name;
+
+    /**
+     * 璐熻矗浜�
+     */
+    @Length(message = "鐗囧尯璐熻矗浜哄鍚嶄笉澶т簬{max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 25)
+    private String header;
+
+    /**
+     * 璐熻矗浜虹數璇�
+     */
+    @Length(message = "鐗囧尯璐熻矗浜烘墜鏈哄彿蹇呴』{max}浣嶆暟鎹�", min = 11, max = 11)
+    private String phone;
+
+    /**
+     * 绉嶆闈㈢Н
+     */
+    @Max(message = "鐗囧尯闈㈢Н涓嶆纭�", value = 100000000)
+    @Min(message = "鐗囧尯闈㈢Н涓嶆纭�",value = 0)
+    private Integer area;
+
+    /**
+     * 鐢靛瓙鍦板浘鍖哄煙鐫�鑹�
+     */
+    @Length(message = "鍖哄煙鐫�鑹查暱搴﹀皬浜巤max}瀛�", min = 0, max = 6)
+    private String color;
+
+    /**
+     * 澶囨敞
+     */
+    @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 0, max = 50)
+    private String remark;
+
+    /**
+     * 鏄惁鍒犻櫎: 0琛ㄧず鏈垹闄�  1琛ㄧず鍒犻櫎.
+     */
+    private Deleted deleted;
+
+    /**
+     * 鍦板浘鍥惧舰瀵硅薄
+     */
+    private JSONArray graphs;
+
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java
new file mode 100644
index 0000000..18f3081
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrBase.block.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-14 11:17
+ * @LastEditTime 2024-08-14 11:17
+ * @Description 鍦板浘鍥惧舰鍒嗙被鏋氫妇绫�
+ */
+
+@Getter
+@AllArgsConstructor
+public enum graphTypeENUM {
+    CIRCLE_MARKER((byte)1, "鍦嗗湀鏍囪"),
+    POLYGON((byte)2, "澶氳竟褰�"),
+    POLYLINE((byte)3, "澶氭绾�");
+
+    private final Byte code;
+    private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
index b757745..7d68698 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
@@ -27,7 +27,13 @@
     /**
      * 鐢ㄦ埛
      */
-    THE_USER_NOT_EXIST(20001, "鐢ㄦ埛涓嶅瓨鍦�");
+    THE_USER_NOT_EXIST(20001, "鐢ㄦ埛涓嶅瓨鍦�"),
+
+    /**
+     * 鐗囧尯
+     */
+    SAVA_BLOCK_ERROR(30001, "淇濆瓨鐗囧尯澶辫触"),
+    THE_BLOCK_NOT_EXIST(30002, "鐗囧尯涓嶅瓨鍦�");
 
     private final Integer code;
     private final String message;

--
Gitblit v1.8.0