From f2be4ed3f71f85f15f2c6bb6ab1d0263c1bd5f3a Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 11 十一月 2023 22:13:47 +0800
Subject: [PATCH] 1、完善一些代码 2、实现了片区管理 3、增加了apache的BeanUtils实现对象转Map

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java                   |   27 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java                        |    2 
 pipIrr-platform/pom.xml                                                                                   |    1 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java                      |   14 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml                              |   29 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml                                 |  179 +++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/说明.txt                |    2 
 pipIrr-platform/文档/数据库服务器.txt                                                                             |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java                   |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionEnum.java              |   24 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java     |   98 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/QueryVo.java             |   27 +
 pipIrr-platform/pipIrr-web/pipIrr-web.iml                                                                 |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java               |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java                    |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java             |   83 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaBlock.java                       |   78 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java       |   35 +
 pipIrr-platform/pipIrr-global/pom.xml                                                                     |   14 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java                  |   76 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java           |  191 +++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java                    |   40 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/QueryVo.java              |   26 +
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java                      |   91 +++
 pipIrr-platform/pipIrr-global/pipIrr-global.iml                                                           |   18 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java               |    7 
 pipIrr-platform/pipIrr-web/pom.xml                                                                        |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java       |    6 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java                   |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java                        |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java          |    1 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/说明.txt                   |    1 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java               |   61 ++
 pipIrr-platform/pipIrr-common/pom.xml                                                                     |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/logs/pipIrrBase.log                                            |  250 ++++++++++
 36 files changed, 1,400 insertions(+), 22 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/pom.xml b/pipIrr-platform/pipIrr-common/pom.xml
index 2ad1d84..19db807 100644
--- a/pipIrr-platform/pipIrr-common/pom.xml
+++ b/pipIrr-platform/pipIrr-common/pom.xml
@@ -71,6 +71,7 @@
             <artifactId>springdoc-openapi-security</artifactId>
         </dependency>
 
+
         <!--mysql椹卞姩-->
         <dependency>
             <groupId>com.mysql</groupId>
@@ -113,6 +114,7 @@
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
         </dependency>
+
     </dependencies>
 
     <build>
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
index 82f20fa..fed35d1 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
@@ -1,8 +1,10 @@
 package com.dy.common.mybatis;
 
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import jakarta.annotation.PostConstruct;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.util.List;
@@ -13,6 +15,9 @@
     @Autowired
     private List<SqlSessionFactory> sqlSessionFactoryList;
 
+    /**
+     * 涓や釜鎷︽埅鍣紝鑷姩鐢熸垚ID锛屽紓甯告椂杈撳嚭SQL
+     */
     @PostConstruct
     public void addMyInterceptor() {
         for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
@@ -20,4 +25,13 @@
             sqlSessionFactory.getConfiguration().addInterceptor(new PrintExceptionSqlInterceptor());
         }
     }
+
+    /**
+     * mybatisPlus鐨勫垎闈㈡彃浠�
+     * @return 鎷︽埅鍣�
+     */
+    @Bean
+    public PaginationInnerInterceptor paginationInnerInterceptor(){
+        return new PaginationInnerInterceptor() ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java
new file mode 100644
index 0000000..ffd3300
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryConditionVo.java
@@ -0,0 +1,27 @@
+package com.dy.common.webUtil;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.*;
+
+@Data
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鏌ヨ鏉′欢鍩虹被")
+public class QueryConditionVo {
+    /**
+     * 褰撳墠鏌ヨ椤�
+     */
+    @Schema(description = "褰撳墠椤�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "褰撳墠椤典笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    public Integer pageCurr ;
+
+    /**
+     * 姣忛〉鏁版嵁鏉℃暟
+     */
+    @Schema(description = "姣忛〉璁板綍鏁�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "姣忛〉璁板綍鏁颁笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    public Integer pageSize ;
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java
new file mode 100644
index 0000000..8af19e3
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/QueryResultVo.java
@@ -0,0 +1,91 @@
+package com.dy.common.webUtil;
+
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+import java.util.Map;
+
+@Data
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鏌ヨ缁撴灉鍩虹被")
+public class QueryResultVo<T> {
+
+    /**
+     * 姣忛〉鏄剧ず鐨勮褰曟暟
+     */
+    @Schema(description = "姣忛〉璁板綍鏁�")
+    @Builder.Default
+    public Integer pageSize = 0 ;
+    /**
+     * 璁板綍鎬绘暟
+     */
+    @Schema(description = "璁板綍鎬绘暟")
+    @Builder.Default
+    public Long itemTotal = 0L;
+    /**
+     * 褰撳墠椤�
+     */
+    @Schema(description = "褰撳墠椤�")
+    @Builder.Default
+    public Integer pageCurr = 0;
+    /**
+     * 鎬婚〉鏁�
+     */
+    @Schema(description = "鎬婚〉鏁�")
+    @Builder.Default
+    public Integer pageTotal = 0;
+
+    @Schema(description = "鏁版嵁")
+    @Builder.Default
+    public T content = null;
+
+    /**
+     * 鏌ヨ寮�濮嬭褰�
+     */
+    @Schema(hidden = true)
+    @JSONField(serialize = false)
+    public Integer queryStart ;
+
+    /**
+     * 鏌ヨ鏁伴噺
+     */
+    @Schema(hidden = true)
+    @JSONField(serialize = false)
+    public Integer queryCount ;
+
+
+    public void calculateAndSet(Long itemTotal, Map<String, Object> params) {
+        this.itemTotal = itemTotal ;
+        if(this.itemTotal == null){
+            itemTotal = 0L ;
+        }
+
+        if (pageSize < 1) {
+            pageSize = 1;
+        }
+        pageTotal = (int)Math.ceil((double)itemTotal/pageSize);
+
+        if (pageTotal == 0) {
+            pageTotal = 1;
+        }
+        if (pageCurr < 1) {
+            pageCurr = 1;
+        }
+        if (pageCurr > pageTotal) {
+            pageCurr = pageTotal;
+        }
+
+        //select * from table_name limit 5 锛�10;//浠庣6琛屽紑濮嬶紝妫�绱�10琛岃褰曪紝鍗筹細妫�绱㈣褰曡 6-15
+        this.queryStart = (this.pageCurr - 1) * this.pageSize ;
+        this.queryCount = this.pageSize ;
+
+        params.put("queryStart", this.queryStart) ;
+        params.put("queryCount", this.queryCount) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/pipIrr-global.iml b/pipIrr-platform/pipIrr-global/pipIrr-global.iml
index 2f45e45..89d9c6f 100644
--- a/pipIrr-platform/pipIrr-global/pipIrr-global.iml
+++ b/pipIrr-platform/pipIrr-global/pipIrr-global.iml
@@ -33,7 +33,6 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.0.11" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:3.1.3" level="project" />
     <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:10.1.12" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" />
     <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:10.1.12" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-web:6.0.11" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-beans:6.0.11" level="project" />
@@ -43,6 +42,23 @@
     <orderEntry type="library" name="Maven: org.springframework:spring-aop:6.0.11" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-context:6.0.11" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-expression:6.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.12" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.12.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.15" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.0" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.2" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2" level="project" />
     <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-devtools:3.1.3" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.1.3" level="project" />
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.1.3" level="project" />
diff --git a/pipIrr-platform/pipIrr-global/pom.xml b/pipIrr-platform/pipIrr-global/pom.xml
index e984ab5..960b924 100644
--- a/pipIrr-platform/pipIrr-global/pom.xml
+++ b/pipIrr-platform/pipIrr-global/pom.xml
@@ -38,6 +38,20 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <!-- 杈撳叆鍙傛暟鎹獙璇� -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <!-- api鍦ㄧ嚎鏂囨。  https://springdoc.org/#modules-->
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
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
new file mode 100644
index 0000000..2105c40
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java
@@ -0,0 +1,76 @@
+package com.dy.pipIrrGlobal.daoBa;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import com.dy.pipIrrGlobal.pojoBa.BaPrivilege;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface BaBlockMapper extends BaseMapper<BaPrivilege> {
+    /**
+     * delete by primary key
+     * @param id primaryKey
+     * @return deleteCount
+     */
+    int deleteByPrimaryKey(Long id);
+
+    /**
+     * 閫昏緫鍒犻櫎
+     * @param id primaryKey
+     * @return update count
+     */
+    int deleteLogicById(Long id);
+
+    /**
+     * insert record to table
+     * @param record the record
+     * @return insert count
+     */
+    int insert(BaBlock record);
+
+    /**
+     * insert record to table selective
+     * @param record the record
+     * @return insert count
+     */
+    int insertSelective(BaBlock record);
+
+    /**
+     * select by primary key
+     * @param id primary key
+     * @return object by primary key
+     */
+    BaBlock selectByPrimaryKey(Long id);
+
+
+    /**
+     * 鏌ヨ鎬绘暟
+     * @param params 鏌ヨ鏉′欢
+     * @return 鎬绘暟
+     */
+    Long selectTotal(Map<?, ?> params) ;
+
+    /**
+     * 鍒嗛〉鏌ヨ涓�浜�
+     * @param params 鏌ヨ鏉′欢
+     * @return 瀹炰綋闆嗗悎
+     */
+    List<BaBlock> selectSome(Map<?, ?> params) ;
+
+    /**
+     * update record selective
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKeySelective(BaBlock record);
+
+    /**
+     * update record
+     * @param record the updated record
+     * @return update count
+     */
+    int updateByPrimaryKey(BaBlock record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
index 80b0136..07963e0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
@@ -17,6 +17,13 @@
     int deleteByPrimaryKey(Long id);
 
     /**
+     * 閫昏緫鍒犻櫎
+     * @param id primaryKey
+     * @return update count
+     */
+    int deleteLogicById(Long id);
+
+    /**
      * 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/BaRolePrivilegeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java
index d93d379..4474cbf 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaRolePrivilegeMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaRolePrivilege;
-import com.dy.pipIrrGlobal.pojoBa.BaUserRole;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
index 01aa8cf..ef40bf5 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
@@ -1,9 +1,9 @@
 package com.dy.pipIrrGlobal.daoBa;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaUser;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 @Mapper
 public interface BaUserMapper extends BaseMapper<BaUser> {
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaBlock.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaBlock.java
new file mode 100644
index 0000000..aaf9d1f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaBlock.java
@@ -0,0 +1,78 @@
+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.mybatis.envm.Deleted;
+import com.dy.common.po.BaseEntity;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotEmpty;
+import lombok.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import org.hibernate.validator.constraints.Length;
+/**
+ * 鐗囧尯鍒掑疄浣�
+ */
+@TableName(value="ba_district", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鐗囧尯瀹炰綋")
+public class BaBlock implements BaseEntity {
+
+    public static final long serialVersionUID = 20231191728001L;
+
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Long id ;
+
+    /**
+     * 鐗囧尯鍚嶇О
+     */
+    @Schema(description = "鐗囧尯鍚嶇О", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "鐗囧尯鍚嶇О涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鐗囧尯鍚嶇О灏忎簬{max}瀛�", min = 1, max = 25)
+    public String name;
+
+    /**
+     * 璐熻矗浜�
+     */
+    @Schema(description = "鐗囧尯璐熻矗浜�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鐗囧尯璐熻矗浜哄鍚嶅皬浜巤max}瀛�", min = 1, max = 25)
+    public String header;
+
+    /**
+     * 璐熻矗浜虹數璇�
+     */
+    @Schema(description = "鐗囧尯璐熻矗浜烘墜鏈哄彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鐗囧尯璐熻矗浜烘墜鏈哄彿蹇呴』{max}浣嶆暟鎹�", min = 11, max = 11)
+    public String phone;
+
+    /**
+     * 绉嶆闈㈢Н
+     */
+    @Schema(description = "鐗囧尯闈㈢Н", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Max(message = "鐗囧尯闈㈢Н涓嶆纭�", value = 100000000)
+    @Min(message = "鐗囧尯闈㈢Н涓嶆纭�",value = 0)
+    public Integer area;
+
+    /**
+     * 鐢靛瓙鍦板浘鍖哄煙鐫�鑹�
+     */
+    @Schema(description = "鍖哄煙鐫�鑹�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鍖哄煙鐫�鑹查暱搴﹀皬浜巤max}瀛�", min = 1, max = 6)
+    public String color;
+
+    /**
+     * 鏄惁鍒犻櫎: 0琛ㄧず鏈垹闄�  1琛ㄧず鍒犻櫎.
+     */
+    @Schema(description = "鐗囧尯鍒犻櫎鏍囧織", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Deleted deleted;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
index 9a0eb2c..46d0018 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
@@ -6,32 +6,70 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.mybatis.envm.Deleted;
 import com.dy.common.po.BaseEntity;
 import com.dy.pipIrrGlobal.util.DistrictLevel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
 import lombok.*;
+import org.hibernate.validator.constraints.Length;
 
 import java.util.List;
 
+/**
+ * 琛屾斂鍖哄垝瀹炰綋
+ */
 @TableName(value="ba_district", autoResultMap = true)
 @Data
 @Builder
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
+@Schema(name = "琛屾斂鍖哄垝瀹炰綋")
 public class BaDistrict implements BaseEntity {
 
     public static final long serialVersionUID = 202311081046001L;
 
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Long id ;
 
-    public Long supperId;//涓婄骇琛屾斂鍖篒D
+    /**
+     * 涓婄骇琛屼笅鍖篒D
+     */
+    @Schema(description = "涓婄骇瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Long supperId;
 
+    /**
+     * 琛屾斂鍖哄悕绉�
+     */
+    @Schema(description = "琛屾斂鍖哄悕绉�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "琛屾斂鍖哄悕绉颁笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "琛屾斂鍖哄悕绉板皬浜巤max}瀛�", min = 1, max = 25)
     public String name;
 
+    /**
+     * 琛屾斂鍖虹骇鍒�
+     */
+    @Schema(description = "琛屾斂鍖虹骇鍒�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "琛屾斂鍖虹骇鍒笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Max(message = "琛屾斂鍖虹骇鍒笉姝g‘", value = 10)
+    @Min(message = "琛屾斂鍖虹骇鍒笉姝g‘",value = 0)
     public DistrictLevel level;
 
+    /**
+     * 鏄惁鍒犻櫎: 0琛ㄧず鏈垹闄�  1琛ㄧず鍒犻櫎.
+     */
+    @Schema(description = "琛屾斂鍖哄垹闄ゆ爣蹇�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Deleted deleted;
+
+    /**
+     * 涓嬬骇琛屾斂鍖洪泦鍚�
+     */
     @TableField(exist = false)
     public List<BaDistrict> subDistricts ;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java
index 6b365b3..4a7fe07 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaPrivilege.java
@@ -8,6 +8,9 @@
 import com.dy.common.po.BaseEntity;
 import lombok.*;
 
+/**
+ * 鏉冮檺瀹炰綋
+ */
 @TableName(value="ba_privilege", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
index bdc8450..bf2b547 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRole.java
@@ -10,6 +10,9 @@
 import com.dy.common.po.BaseEntity;
 import lombok.*;
 
+/**
+ * 瑙掕壊瀹炰綋
+ */
 @TableName(value="ba_role", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
index 221caec..c3cf336 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaRolePrivilege.java
@@ -6,7 +6,9 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dy.common.po.BaseEntity;
 import lombok.*;
-
+/**
+ * 瑙掕壊涓庢潈闄愬叧绯诲疄浣�
+ */
 @TableName(value="ba_role_privilege", autoResultMap = true)
 @Data
 @Builder
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
index 1c5f61c..a1bc809 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
@@ -12,6 +12,8 @@
 
 
 /**
+ * 鐢ㄦ埛瀹炰綋
+ *
  * TableName(value = 鈥渁鈥�, autoResultMap = true)
  * autoResultMap鍙傛暟涓簍rue鏃讹紝琛ㄦ槑涓埆瀛楁鍦ㄦ煡璇㈠鐞嗙殑鏃跺�欒嚜鍔ㄨ浆鎹负瀵硅薄锛�
  * 鍙�傚悎璁剧疆浜員ypeHandler銆乯dbcTyped鐨勬儏鍐点�俛utoResultMap 鑷姩鏄犲皠锛�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java
index 019e1ca..7d58afd 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUserRole.java
@@ -7,6 +7,9 @@
 import com.dy.common.po.BaseEntity;
 import lombok.*;
 
+/**
+ * 鐢ㄦ埛涓庤鑹插叧绯诲疄浣�
+ */
 @TableName(value="ba_user_role", autoResultMap = true)
 @Data
 @Builder
@@ -19,10 +22,10 @@
 
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableField(value = "userId")
-    private Long userId;
+    public Long userId;
 
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableField(value = "roleId")
-    private Long roleId;
+    public Long roleId;
 
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionEnum.java
similarity index 62%
rename from pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java
rename to pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionEnum.java
index 85b2944..578e348 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionDistrict.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/util/TypeConversionEnum.java
@@ -1,5 +1,6 @@
 package com.dy.pipIrrGlobal.util;
 
+import com.dy.common.mybatis.envm.Deleted;
 import org.mapstruct.Named;
 import org.springframework.stereotype.Component;
 import java.util.Objects;
@@ -9,7 +10,7 @@
  */
 @Component
 @SuppressWarnings("")
-public class TypeConversionDistrict {
+public class TypeConversionEnum {
     /**
      * @param obj 鍙傛暟
      * @return 杞崲鎴愮殑瀵硅薄
@@ -35,4 +36,25 @@
             return rObj ;
         }
     }
+    /**
+     * @param obj 鍙傛暟
+     * @return 杞崲鎴愮殑瀵硅薄
+     */
+    @Named("deletedByteToObj")
+    public Deleted converseDeleted(Object obj) {
+        if (Objects.isNull(obj)) {
+            return null;
+        }else{
+            byte sourceObj = (obj instanceof Byte?(Byte)obj: Deleted.NO.code);
+            Deleted rObj ;
+            if(sourceObj == Deleted.NO.code){
+                rObj = Deleted.NO ;
+            }else if(sourceObj == Deleted.YES.code){
+                rObj = Deleted.YES ;
+            }else{
+                rObj = Deleted.NO ;
+            }
+            return rObj ;
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
new file mode 100644
index 0000000..c7da490
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml
@@ -0,0 +1,179 @@
+<?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 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,deleted
+  </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}
+  </select>
+  <select id="selectTotal" parameterType="java.lang.Long" resultType="java.lang.Long">
+    <!--@mbg.generated-->
+    select
+    count(*)
+    from ba_block
+    <trim prefix="where ">
+      <if test="name != null">
+        name like '%#{name,jdbcType=VARCHAR}%' and
+      </if>
+      <if test="header != null">
+        header = '#{header,jdbcType=VARCHAR}' and
+      </if>
+      <if test="phone != null">
+        phone = '#{phone,jdbcType=VARCHAR}' and
+      </if>
+      <if test="area != null">
+        area = #{area,jdbcType=INTEGER}
+      </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 ">
+      <if test="name != null">
+        name like '%#{name,jdbcType=VARCHAR}%' and
+      </if>
+      <if test="header != null">
+        header = '#{header,jdbcType=VARCHAR}' and
+      </if>
+      <if test="phone != null">
+        phone = '#{phone,jdbcType=VARCHAR}' and
+      </if>
+      <if test="area != null">
+        area = #{area,jdbcType=INTEGER}
+      </if>
+    </trim>
+    <trim prefix="limit " >
+      <if test="queryStart != null and queryCount != null">
+        #{queryStart}, #{queryCount}
+      </if>
+    </trim>
+  </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>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock">
+    <!--@mbg.generated-->
+    insert into ba_block (id, `name`, `header`, phone, area, color, deleted)
+    values (#{id,jdbcType=BIGINT},
+            #{name,jdbcType=VARCHAR},
+            #{header,jdbcType=VARCHAR},
+            #{phone,jdbcType=VARCHAR},
+            #{area,jdbcType=INTEGER},
+            #{color,jdbcType=VARCHAR},
+            #{deleted,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="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="deleted != null">
+        #{deleted,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="deleted != null">
+        color = #{deleted,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},
+      deleted = #{deleted,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
index 0732885..f8679a0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
@@ -8,10 +8,11 @@
     <id column="supperId" jdbcType="BIGINT" property="supperId" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result property="level" column="level" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.pipIrrGlobal.util.DistrictLevel"/>
+    <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, supperId, `name`, `level`
+    id, supperId, `name`, `level`, deleted
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -39,10 +40,20 @@
     delete from ba_district
     where id = #{id,jdbcType=BIGINT}
   </delete>
+  <delete id="deleteLogicById" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    update ba_district set deleted = 1
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict">
     <!--@mbg.generated-->
-    insert into ba_district (id, supperId, `name`, `level`)
-    values (#{id,jdbcType=BIGINT}, #{supperId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=TINYINT})
+    insert into ba_district (id, supperId, `name`, `level`, deleted)
+    values (#{id,jdbcType=BIGINT},
+            #{supperId,jdbcType=BIGINT},
+            #{name,jdbcType=VARCHAR},
+            #{level,jdbcType=TINYINT},
+            #{deleted,jdbcType=TINYINT}
+    )
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict">
     <!--@mbg.generated-->
@@ -60,6 +71,9 @@
       <if test="level != null">
         `level`,
       </if>
+      <if test="deleted != null">
+        deleted,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -73,6 +87,9 @@
       </if>
       <if test="level != null">
         #{level,jdbcType=TINYINT},
+      </if>
+      <if test="deleted != null">
+        #{deleted,jdbcType=TINYINT},
       </if>
     </trim>
   </insert>
@@ -89,6 +106,9 @@
       <if test="level != null">
         `level` = #{level,jdbcType=TINYINT},
       </if>
+      <if test="deleted != null">
+        deleted = #{deleted,jdbcType=TINYINT},
+      </if>
     </set>
     where id = #{id,jdbcType=BIGINT}
   </update>
@@ -97,7 +117,8 @@
     update ba_district
     set supperId = #{supperId,jdbcType=BIGINT},
         `name` = #{name,jdbcType=VARCHAR},
-        `level` = #{level,jdbcType=TINYINT}
+        `level` = #{level,jdbcType=TINYINT},
+        deleted = #{deleted,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/logs/pipIrrBase.log b/pipIrr-platform/pipIrr-web/pipIrr-web-base/logs/pipIrrBase.log
new file mode 100644
index 0000000..32f7a61
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/logs/pipIrrBase.log
@@ -0,0 +1,250 @@
+2023-11-11 20:47:34,491:ERROR main (org.springframework.boot.SpringApplication.reportFailure:824) - Application run failed
+com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null
+	at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.ClassUtils.getUserClass(ClassUtils.java:95) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.github.yulichang.toolkit.TableHelper.get(TableHelper.java:45) ~[mybatis-plus-join-core-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.mapper.MPJTableInfoHelper.initTableInfo(MPJTableInfoHelper.java:73) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.lambda$new$0(MappingConfig.java:17) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
+	at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092) ~[?:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.<init>(MappingConfig.java:16) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:132) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:125) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig$$SpringCGLIB$$0.onApplicationEvent(<generated>) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:437) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) [spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) [spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) [spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2]
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?]
+	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?]
+2023-11-11 20:47:34,563:ERROR main (org.springframework.test.context.TestContextManager.prepareTestInstance:245) - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [com.dy.pipIrrBase.BaUserTest@6958d5d0]
+java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@78f4d15d testClass = com.dy.pipIrrBase.BaUserTest, locations = [], classes = [com.dy.pipIrrBase.PipIrrBaseApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@6754ef00, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7561db12, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1968a49c, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@3b65e559, org.springframework.boot.test.context.SpringBootTestAnnotation@21b79f2a], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:143) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2]
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?]
+	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?]
+Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null
+	at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.ClassUtils.getUserClass(ClassUtils.java:95) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.github.yulichang.toolkit.TableHelper.get(TableHelper.java:45) ~[mybatis-plus-join-core-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.mapper.MPJTableInfoHelper.initTableInfo(MPJTableInfoHelper.java:73) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.lambda$new$0(MappingConfig.java:17) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
+	at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092) ~[?:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.<init>(MappingConfig.java:16) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:132) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:125) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig$$SpringCGLIB$$0.onApplicationEvent(<generated>) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:437) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) ~[spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) ~[spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) ~[spring-test-6.0.11.jar:6.0.11]
+	... 25 more
+2023-11-11 20:48:16,317:ERROR main (org.springframework.boot.SpringApplication.reportFailure:824) - Application run failed
+com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null
+	at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.ClassUtils.getUserClass(ClassUtils.java:95) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.github.yulichang.toolkit.TableHelper.get(TableHelper.java:45) ~[mybatis-plus-join-core-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.mapper.MPJTableInfoHelper.initTableInfo(MPJTableInfoHelper.java:73) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.lambda$new$0(MappingConfig.java:17) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
+	at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092) ~[?:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.<init>(MappingConfig.java:16) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:132) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:125) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig$$SpringCGLIB$$0.onApplicationEvent(<generated>) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:437) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) [spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) [spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) [spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) [spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2]
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?]
+	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?]
+2023-11-11 20:48:16,336:ERROR main (org.springframework.test.context.TestContextManager.prepareTestInstance:245) - Caught exception while allowing TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] to prepare test instance [com.dy.pipIrrBase.BaUserTest@7169d668]
+java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@314c28dc testClass = com.dy.pipIrrBase.BaUserTest, locations = [], classes = [com.dy.pipIrrBase.PipIrrBaseApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@3a7704c, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4acf72b6, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@54a3ab8f, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@64b31700, org.springframework.boot.test.context.SpringBootTestAnnotation@cea03b4f], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:143) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) [junit-4.13.2.jar:4.13.2]
+	at org.junit.runners.ParentRunner.run(ParentRunner.java:413) [junit-4.13.2.jar:4.13.2]
+	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-6.0.11.jar:6.0.11]
+	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.13.2.jar:4.13.2]
+	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) [junit-rt.jar:?]
+	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) [junit-rt.jar:?]
+	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) [junit-rt.jar:?]
+Caused by: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Class must not be null
+	at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.baomidou.mybatisplus.core.toolkit.ClassUtils.getUserClass(ClassUtils.java:95) ~[mybatis-plus-core-3.5.3.2.jar:3.5.3.2]
+	at com.github.yulichang.toolkit.TableHelper.get(TableHelper.java:45) ~[mybatis-plus-join-core-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.mapper.MPJTableInfoHelper.initTableInfo(MPJTableInfoHelper.java:73) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.lambda$new$0(MappingConfig.java:17) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
+	at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092) ~[?:?]
+	at com.github.yulichang.extension.mapping.config.MappingConfig.<init>(MappingConfig.java:16) ~[mybatis-plus-join-extension-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:132) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig.onApplicationEvent(MybatisPlusJoinAutoConfiguration.java:125) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at com.github.yulichang.autoconfigure.MybatisPlusJoinAutoConfiguration$MPJMappingConfig$$SpringCGLIB$$0.onApplicationEvent(<generated>) ~[mybatis-plus-join-boot-starter-1.4.7.1.jar:?]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:437) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[spring-context-6.0.11.jar:6.0.11]
+	at org.springframework.boot.context.event.EventPublishingRunListener.ready(EventPublishingRunListener.java:109) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.lambda$ready$6(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplicationRunListeners.ready(SpringApplicationRunListeners.java:80) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:331) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) ~[spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) ~[spring-core-6.0.11.jar:6.0.11]
+	at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) ~[spring-boot-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) ~[spring-boot-test-3.1.3.jar:3.1.3]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) ~[spring-test-6.0.11.jar:6.0.11]
+	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) ~[spring-test-6.0.11.jar:6.0.11]
+	... 25 more
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
new file mode 100644
index 0000000..3b356a9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java
@@ -0,0 +1,191 @@
+package com.dy.pipIrrBase.block;
+
+import com.dy.common.aop.SsoAop;
+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.pipIrrGlobal.pojoBa.BaBlock;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Objects;
+
+@Slf4j
+@Tag(name = "鐗囧尯绠$悊", description = "鐗囧尯澧炲垹鏀规煡绛夋搷浣�")
+@RestController
+@RequestMapping(path="block")
+@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
+public class BlockCtrl {
+
+    private BlockSv sv ;
+
+    @Autowired
+    private void setSv(BlockSv sv){
+        this.sv = sv ;
+    }
+
+    /**
+     * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹�
+     * @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")
+    public BaseResponse<QueryResultVo<List<BaBlock>>> some(QueryVo vo){
+        try {
+            QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo) ;
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鏌ヨ鐗囧尯寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    /**
+     * 寰楀埌涓�涓墖鍖烘暟鎹�
+     * @return 涓�涓墖鍖烘暟鎹�
+     */
+    @Operation(summary = "涓�涓墖鍖�", description = "寰楀埌涓�涓墖鍖烘暟鎹�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�涓墖鍖烘暟鎹紙BaseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaBlock.class))}
+            )
+    })
+    @GetMapping(path = "one")
+    public BaseResponse<BaBlock> one(@Parameter(description = "瀹炰綋id", required = true) Long id){
+        return BaseResponseUtils.buildSuccess(this.sv.selectById(id));
+    }
+
+    /**
+     * 淇濆瓨鐗囧尯
+     * @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 = "save", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    public BaseResponse<Boolean> save(@Parameter(description = "form琛ㄥ崟鏁版嵁", required = true) @Valid BaBlock po, @Parameter(hidden = true) BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        po.id = null ;
+        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) ;
+        }
+    }
+
+    /**
+     * 缂栬緫淇敼鐗囧尯
+     * @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.MULTIPART_FORM_DATA_VALUE)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    public BaseResponse<Boolean> update(@Parameter(description = "form琛ㄥ崟鏁版嵁", required = true) @Valid BaBlock po, @Parameter(hidden = true) BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        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()) ;
+        }
+        if(count <= 0){
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        }else{
+            return BaseResponseUtils.buildSuccess(true) ;
+        }
+    }
+
+
+    /**
+     * 鍒犻櫎鐗囧尯
+     * @param id 鐗囧尯ID
+     * @return 鏄惁鎴愬姛
+     */
+    @Operation(summary = "鍒犻櫎鐗囧尯", description = "鎻愪氦鐗囧尯ID锛岃繘琛岄�昏緫鍒犻櫎")
+    @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))}
+            )
+    })
+    @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    public BaseResponse<Boolean> delete(@Parameter(description = "瀹炰綋id", required = true) 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()) ;
+        }
+        if(count <= 0){
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        }else{
+            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
new file mode 100644
index 0000000..724f737
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
@@ -0,0 +1,83 @@
+package com.dy.pipIrrBase.block;
+
+import com.alibaba.fastjson2.JSON;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoBa.BaBlockMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaBlock;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.apache.commons.beanutils.BeanUtils ;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+
+@Slf4j
+@Service
+public class BlockSv {
+
+    private BaBlockMapper dao;
+
+    @Autowired
+    private void setDao(BaBlockMapper dao){
+        this.dao = dao;
+    }
+
+    /**
+     * 寰楀埌涓�涓墖鍖�
+     * @param id 鐗囧尯ID
+     * @return 鐗囧尯瀹炰綋
+     */
+    public BaBlock selectById(Long id){
+        return this.dao.selectByPrimaryKey(id) ;
+    }
+
+    /**
+     * 寰楀埌涓�涓墖鍖�
+     * @param vo 鏌ヨ鏉′欢鍊煎璞�
+     * @return 鐗囧尯瀹炰綋
+     */
+    public QueryResultVo<List<BaBlock>> selectSome(QueryVo vo) throws Exception{
+        Map<String, Object> params = new HashMap<>();
+        BeanUtils.populate(vo, params);
+        Long itemTotal = this.dao.selectTotal(params) ;
+
+        QueryResultVo<List<BaBlock>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = vo.pageSize ;
+        rsVo.pageCurr = vo.pageCurr ;
+        rsVo.calculateAndSet(itemTotal, params);
+
+        List<BaBlock> list = this.dao.selectSome(params) ;
+
+        return (QueryResultVo.<List<BaBlock>>builder().content(list)).build() ;
+    }
+
+    /**
+     * 淇濆瓨瀹炰綋
+     * @param po 瀹炰綋
+     * @return 鏁伴噺
+     */
+    public int save(BaBlock po){
+        return this.dao.insert(po) ;
+    }
+
+    /**
+     * 淇濆瓨淇敼瀹炰綋
+     * @param po 瀹炰綋
+     * @return 鏁伴噺
+     */
+    public int update(BaBlock po){
+        return this.dao.updateByPrimaryKeySelective(po) ;
+    }
+
+    /**
+     * 淇濆瓨淇敼瀹炰綋
+     * @param id 瀹炰綋ID
+     * @return 鏁伴噺
+     */
+    public int delete(Long id){
+        return this.dao.deleteLogicById(id) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/QueryVo.java
new file mode 100644
index 0000000..36a06bb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/QueryVo.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrBase.block;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鐗囧尯鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+
+    @Schema(description = "鐗囧尯鍚嶇О")
+    public String name;
+
+    @Schema(description = "璐熻矗浜�")
+    public String header;
+
+    @Schema(description = "璐熻矗浜虹數璇�")
+    public String phone;
+
+    @Schema(description = "绉嶆闈㈢Н")
+    public Integer area;
+}
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/\350\257\264\346\230\216.txt"
new file mode 100644
index 0000000..45c528d
--- /dev/null
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/\350\257\264\346\230\216.txt"
@@ -0,0 +1 @@
+鎻愪氦鐨刦orm琛ㄥ崟鐢卞疄浣撶被鎺ユ敹鏁版嵁
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
index 3377625..deaf5a7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
@@ -68,15 +68,33 @@
     @ApiResponses(value = {
             @ApiResponse(
                     responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "杩斿洖鎵�鏈夎鏀垮尯鏁版嵁锛圔aseResponse鏄熀绫伙級",
+                    description = "杩斿洖鎵�鏈夎鏀垮尯鏁版嵁锛圔aseResponse.content:[{}]锛�",
                     content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                             schema = @Schema(implementation = BaDistrict.class))}
             )
     })
-    @GetMapping(path = "allDistricts")
-    public BaseResponse<List<BaDistrict>> allDistricts(){
-        List<BaDistrict> list = this.sv.getAll(DistrictLevel.City.code) ;
+    @GetMapping(path = "all")
+    public BaseResponse<List<BaDistrict>> all(){
+        List<BaDistrict> list = this.sv.selectAllByLevel(DistrictLevel.City.code) ;
         return BaseResponseUtils.buildSuccess(list);
+    }
+
+    /**
+     * 寰楀埌涓�涓鏀垮尯鏁版嵁
+     * @return 涓�涓鏀垮尯鏁版嵁
+     */
+    @Operation(summary = "涓�涓鏀垮尯", description = "寰楀埌涓�涓鏀垮尯鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�涓鏀垮尯鏁版嵁锛圔aseResponse.content:{}锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaDistrict.class))}
+            )
+    })
+    @GetMapping(path = "one")
+    public BaseResponse<BaDistrict> one(@Parameter(description = "瀹炰綋id", required = true) Long id){
+        return BaseResponseUtils.buildSuccess(this.sv.selectById(id));
     }
 
     /**
@@ -88,7 +106,7 @@
     @ApiResponses(value = {
             @ApiResponse(
                     responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
-                    description = "淇濆瓨琛屾斂鍖鸿繑鍥烇細true锛氭垚鍔燂紝false锛氬け璐ワ紙鏁版嵁鍩虹被鐨刢ontent锛�",
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
                     content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                             schema = @Schema(implementation = Boolean.class))}
             )
@@ -113,4 +131,74 @@
             return BaseResponseUtils.buildSuccess(true) ;
         }
     }
+
+    /**
+     * 缂栬緫淇敼琛屾斂鍖�
+     * @param vo 淇濆瓨琛屾斂鍖篺orm琛ㄥ崟瀵硅薄
+     * @return 鏄惁鎴愬姛
+     */
+    @Operation(summary = "缂栬緫淇敼琛屾斂鍖�", description = "鎻愪氦琛屾斂鍖烘暟鎹紙form琛ㄥ崟锛夛紝杩涜淇敼")
+    @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.MULTIPART_FORM_DATA_VALUE)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    public BaseResponse<Boolean> update(@Parameter(description = "form琛ㄥ崟鏁版嵁", required = true) @Valid DistrictVo vo, @Parameter(hidden = true) BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        BaDistrict po = DistrictVoMapper.INSTANCT.convert(vo);
+        int count;
+        try {
+            count = this.sv.update(po);
+        } catch (Exception e) {
+            log.error("淇濆瓨琛屾斂鍖哄紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+        if(count <= 0){
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        }else{
+            return BaseResponseUtils.buildSuccess(true) ;
+        }
+    }
+
+
+    /**
+     * 鍒犻櫎琛屾斂鍖�
+     * @param id 琛屾斂鍖篒D
+     * @return 鏄惁鎴愬姛
+     */
+    @Operation(summary = "鍒犻櫎琛屾斂鍖�", description = "鎻愪氦琛屾斂鍖篒D锛岃繘琛岄�昏緫鍒犻櫎")
+    @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))}
+            )
+    })
+    @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    public BaseResponse<Boolean> delete(@Parameter(description = "瀹炰綋id", required = true) 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()) ;
+        }
+        if(count <= 0){
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
+        }else{
+            return BaseResponseUtils.buildSuccess(true) ;
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
index c42e5d6..a8f4ae3 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
@@ -19,9 +19,31 @@
         this.dao = dao;
     }
 
-
+    /**
+     * 淇濆瓨瀹炰綋
+     * @param po 瀹炰綋
+     * @return 鏁伴噺
+     */
     public int save(BaDistrict po){
         return this.dao.insert(po) ;
+    }
+
+    /**
+     * 淇濆瓨淇敼瀹炰綋
+     * @param po 瀹炰綋
+     * @return 鏁伴噺
+     */
+    public int update(BaDistrict po){
+        return this.dao.updateByPrimaryKeySelective(po) ;
+    }
+
+    /**
+     * 淇濆瓨淇敼瀹炰綋
+     * @param id 瀹炰綋ID
+     * @return 鏁伴噺
+     */
+    public int delete(Long id){
+        return this.dao.deleteLogicById(id) ;
     }
 
     /**
@@ -29,7 +51,7 @@
      * @param firstLevel 绗竴绾ц涓嬪尯 level
      * @return 鎵�鏈夎鏀垮尯鍒掗泦鍚�
      */
-    public List<BaDistrict> getAll(byte firstLevel){
+    public List<BaDistrict> selectAllByLevel(byte firstLevel){
         List<BaDistrict> list = this.dao.selectByLevel(firstLevel) ;
         if(list != null && list.size() > 0){
             for(BaDistrict po : list){
@@ -40,6 +62,15 @@
     }
 
     /**
+     * 寰楀埌涓�涓鏀垮尯
+     * @param id 琛屾斂鍖篒D
+     * @return 琛屾斂鍖哄疄浣�
+     */
+    public BaDistrict selectById(Long id){
+        return this.dao.selectByPrimaryKey(id) ;
+    }
+
+    /**
      * 寰楀埌涓嬬骇琛屾斂鍖哄垝
      * @param po 涓婄骇琛屾斂鍖哄垝
      */
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
index 06cdafa..6c0af30 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
@@ -15,6 +15,9 @@
 @Builder
 @Schema(name = "琛屾斂鍖哄垝鍊煎璞�")
 public class DistrictVo {
+    @Schema(description = "琛屾斂鍖哄疄浣搃d", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Long id;
+
     @Schema(description = "涓婄骇琛屾斂鍖篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     public Long supperId ;
 
@@ -29,4 +32,7 @@
     @Min(message = "琛屾斂鍖虹骇鍒笉姝g‘",value = 0)
     public Byte level ;
 
+    @Schema(description = "琛屾斂鍖哄垹闄ゆ爣蹇�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Byte deleted ;
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
index 90b5d8f..ffc818d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
@@ -1,12 +1,12 @@
 package com.dy.pipIrrBase.district;
 
 import com.dy.pipIrrGlobal.pojoBa.BaDistrict;
-import com.dy.pipIrrGlobal.util.TypeConversionDistrict;
+import com.dy.pipIrrGlobal.util.TypeConversionEnum;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
-@Mapper(uses = {TypeConversionDistrict.class})
+@Mapper(uses = {TypeConversionEnum.class})
 public interface DistrictVoMapper {
     DistrictVoMapper INSTANCT = Mappers.getMapper(DistrictVoMapper.class);
     /**
@@ -14,9 +14,11 @@
      * @param vo 鍊煎璞�
      * @return po
      */
-    @Mapping(target = "id", ignore = true)
+    @Mapping(target = "id", source = "supperId")
     @Mapping(target = "supperId", source = "supperId")
     @Mapping(target = "name", source = "name")
     @Mapping(target = "level", source = "level", qualifiedByName = "districtLevelByteToObj")
+    @Mapping(target = "deleted", source = "deleted", qualifiedByName = "deletedByteToObj")
+    @Mapping(target = "subDistricts", ignore = true)
     BaDistrict convert(DistrictVo vo);
 }
diff --git "a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/\350\257\264\346\230\216.txt" "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/\350\257\264\346\230\216.txt"
new file mode 100644
index 0000000..2c751cd
--- /dev/null
+++ "b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/\350\257\264\346\230\216.txt"
@@ -0,0 +1,2 @@
+鎻愪氦鐨刦orm琛ㄥ崟鐢变竴涓�煎璞$被鎺ユ敹鏁版嵁
+骞剁敱MapperStruct瀹炵幇鍊煎璞$被涓庡疄浣撶被鏁版嵁浜ゆ崲
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/QueryVo.java
new file mode 100644
index 0000000..4fc9799
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/QueryVo.java
@@ -0,0 +1,26 @@
+package com.dy.pipIrrBase.user;
+
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鐢ㄦ埛鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+
+    @Schema(description = "鐢ㄦ埛濮撳悕")
+    public String name;
+
+    @Schema(description = "鐢ㄦ埛濮撳悕鐢佃瘽")
+    public String phone;
+
+    @Schema(description = "瑙掕壊ID")
+    public Long roleId;
+}
+
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java
new file mode 100644
index 0000000..feb87c0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java
@@ -0,0 +1,61 @@
+package com.dy.pipIrrBase.user;
+
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoBa.BaUserMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaUser;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service
+//public class UserSv extends MPJBaseServiceImpl<BaUserMapper, BaUser> {
+public class UserSv {
+
+    private BaUserMapper dao;
+
+    @Autowired
+    private void setDao(BaUserMapper dao){
+        this.dao = dao;
+    }
+
+    /**
+     * 寰楀埌涓�涓墖鍖�
+     * @param id 鐗囧尯ID
+     * @return 鐗囧尯瀹炰綋
+     */
+    public BaUser selectById(Long id){
+        return this.dao.selectById(id) ;
+
+    }
+
+    /**
+     * 寰楀埌涓�涓墖鍖�
+     * @param vo 鏌ヨ鏉′欢鍊煎璞�
+     * @return 鐗囧尯瀹炰綋
+     */
+    public QueryResultVo<List<BaUser>> selectSome(QueryVo vo){
+//        MPJLambdaWrapper<BaUser> wrapper = new MPJLambdaWrapper<BaUser>()
+//                .selectAll(BaUser.class)//鏌ヨuser琛ㄥ叏閮ㄥ瓧娈�
+//                .select(BaRole::getId, BaRole::getName)
+//                .leftJoin(BaUserRole.class, BaUserRole::getUserId, BaUser::getId)
+//                .leftJoin(BaRole.class, BaRole::getId, BaUserRole::getRoleId);
+//
+//        wrapper.like(StringUtils.isNotEmpty(vo.name), "t.name", vo.name) ;
+//        wrapper.eq(StringUtils.isNotEmpty(vo.name), "t.phone", vo.phone) ;
+//        wrapper.eq(!Objects.isNull(vo.roleId), "t1.id", vo.roleId) ;
+//
+//        Page<BaUser> page = new Page<>(vo.pageCurr, vo.pageSize) ;
+//
+//        IPage<BaUser> iPage = this.dao.selectJoinPage(page, BaUser.class, wrapper) ;
+//
+//        List<BaUser> list = iPage.getRecords() ;
+//
+//        return (QueryResultVo.<List<BaUser>>builder().content(list)).build() ;
+        return null ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web.iml b/pipIrr-platform/pipIrr-web/pipIrr-web.iml
index 86d6a00..4c2c0f5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web.iml
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web.iml
@@ -111,6 +111,8 @@
     <orderEntry type="library" name="Maven: org.mapstruct:mapstruct-processor:1.5.5.Final" level="project" />
     <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" />
     <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:3.1.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:3.1.3" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:3.1.3" level="project" />
diff --git a/pipIrr-platform/pipIrr-web/pom.xml b/pipIrr-platform/pipIrr-web/pom.xml
index 114f342..75e1d6b 100644
--- a/pipIrr-platform/pipIrr-web/pom.xml
+++ b/pipIrr-platform/pipIrr-web/pom.xml
@@ -162,6 +162,13 @@
             <artifactId>jdom2</artifactId>
         </dependency>
 
+        <!-- bean杞琺ap -->
+        <dependency>
+            <groupId>commons-beanutils</groupId>
+            <artifactId>commons-beanutils</artifactId>
+            <version>1.9.4</version>
+        </dependency>
+
         <!-- 娴嬭瘯 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/pipIrr-platform/pom.xml b/pipIrr-platform/pom.xml
index 3f80fb0..8bb024a 100644
--- a/pipIrr-platform/pom.xml
+++ b/pipIrr-platform/pom.xml
@@ -167,6 +167,7 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+
             <!--mybatis-plus-spring-boot-->
             <dependency>
                 <groupId>com.baomidou</groupId>
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\345\231\250.txt" "b/pipIrr-platform/\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\345\231\250.txt"
new file mode 100644
index 0000000..58703da
--- /dev/null
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\346\234\215\345\212\241\345\231\250.txt"
@@ -0,0 +1,3 @@
+鍚戞棩钁碉細
+331 203 058
+dy1234
\ No newline at end of file

--
Gitblit v1.8.0