From ad703f44063beafca0c1ec0913cb7d487179ef8f Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期五, 22 十二月 2023 15:53:44 +0800
Subject: [PATCH] 2023-12-22 朱宝民 农户添加和查询

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java    |   19 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml                               |   26 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java           |   96 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java                |    9 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml                                 |  340 ++++++++++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java                         |   50 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java            |   76 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java                       |  179 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/QueryVo.java             |   46 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java          |  156 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java              |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClientToSeClient.java |   30 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java                  |   49 ++
 13 files changed, 1,076 insertions(+), 2 deletions(-)

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 8916527..b941586 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
@@ -3,8 +3,10 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaDistrict;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 @Mapper
 public interface BaDistrictMapper extends BaseMapper<BaDistrict> {
@@ -73,4 +75,11 @@
      */
     int deleteLogicById(Long id);
 
+    /**
+     * 鏍规嵁鏉戠紪鍙疯幏鍙�5绾у尯鍒掍俊鎭�
+     * @param villageId 鏉戠紪鍙凤紙涓婚敭锛�
+     * @return 5绾ц鏀垮尯鍒掍俊鎭�
+     */
+    Map getDistrictsByVillageId(@Param("villageId") Long villageId);
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
new file mode 100644
index 0000000..ee1e40d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
@@ -0,0 +1,49 @@
+package com.dy.pipIrrGlobal.daoSe;
+
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.pipIrrGlobal.voSe.VoClient;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/22 9:50
+ * @LastEditTime 2023/12/22 9:50
+ * @Description
+ */
+public interface SeClientMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(SeClient record);
+
+    int insertSelective(SeClient record);
+
+    SeClient selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(SeClient record);
+
+    int updateByPrimaryKey(SeClient record);
+
+    /**
+     * 鏍规嵁6浣嶅尯鍒掍覆妯$硦鏌ヨ鍐滄埛缂栧彿
+     * @param district8
+     * @return
+     */
+    String getClientNumOfMax(@Param("district8") String district8);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�
+     * @param params
+     * @return
+     */
+    Long getRecordCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁
+     * @param params
+     * @return
+     */
+    List<VoClient> getClients(Map<?, ?> params);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
new file mode 100644
index 0000000..9e38e29
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClient.java
@@ -0,0 +1,179 @@
+package com.dy.pipIrrGlobal.pojoSe;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/21 19:08
+ * @LastEditTime 2023/12/21 19:08
+ * @Description
+ */
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.*;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * 鍐滄埛琛�
+ */
+
+@TableName(value="se_client", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍐滄埛瀹炰綋")
+public class SeClient implements BaseEntity {
+    public static final long serialVersionUID = 202311141539001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long id;
+
+    /**
+     * 鍘縄D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鎵�鍦ㄥ幙ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄥ幙涓嶈兘涓虹┖")
+    private Long countyid;
+
+    /**
+     * 闀嘔D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鎵�鍦ㄩ晣ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄩ晣涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    private Long townid;
+
+    /**
+     * 鏉慖D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    private Long villageid;
+
+    /**
+     * 鐗囧尯ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    private Long blockid;
+
+    /**
+     * 鍒嗘按鎴縄D
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鎵�鍦ㄥ垎姘存埧ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄥ垎姘存埧涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    private Long divideid;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鍐滄埛濮撳悕涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛濮撳悕涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 25)
+    private String name;
+
+    /**
+     * 鍐滄埛缂栧彿;6浣嶅尯鍒� + 4涓洪『搴忓彿
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.REQUIRED)
+    //@NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private String clientnum;
+
+    /**
+     * 鍖哄垝缂栫爜涓�;鐪佸尯鍒�+甯傚尯鍒�+鍘垮尯鍒�+闀囧尯鍒�+鏉戝尯鍒�
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @Schema(description = "鍖哄垝缂栫爜涓�", requiredMode = Schema.RequiredMode.REQUIRED)
+    //@NotNull(message = "鍖哄垝缂栫爜涓蹭笉鑳戒负绌�")
+    private Long districtnum;
+
+    /**
+     * 鍖哄垝鍚嶇О涓�;鍘垮悕+闀囧悕+鏉戝悕锛岀敤浜庡綊灞炲湴
+     */
+    @Schema(description = "鍖哄垝鍚嶇О涓�", requiredMode = Schema.RequiredMode.REQUIRED)
+    //@NotBlank(message = "鍖哄垝鍚嶇О涓�")
+    private String districttitle;
+
+    /**
+     * 鎵嬫満鍙�
+     */
+    @Schema(description = "鍐滄埛鎵嬫満鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "鍐滄埛鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛鎵嬫満鍙峰繀椤粄max}浣嶆暟鎹�", min = 11, max = 11)
+    private String phone;
+
+    /**
+     * 韬唤璇佸彿
+     */
+    @Schema(description = "鍐滄埛韬唤璇佸彿", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鍐滄埛韬唤璇佸彿涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
+    private String idcard;
+
+    /**
+     * 绉嶆闈㈢Н
+     */
+    @Schema(description = "鍐滄埛绉嶆闈㈢Н", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double area;
+
+    /**
+     * 琛楅亾鍙婇棬鐗屽彿
+     */
+    @Schema(description = "琛楅亾+闂ㄧ墝鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 50)
+    private String address;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    private Long operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @Schema(description = "鎿嶄綔鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date operatedt;
+
+    /**
+     * 绂佹鏍囧織;0-鏈锛�1-宸茬
+     */
+    @Schema(description = "鏄惁绂佺敤", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Max(message = "鏄惁绂佺敤鍙兘0鎴�1", value = 1)
+    @Min(message = "鏄惁绂佺敤鍙兘0鎴�1",value = 0)
+    private Byte disabled;
+
+    /**
+     * 閫昏緫鍒犻櫎鏍囪瘑;0-鏈垹闄わ紝1-鍒犻櫎
+     */
+    @Schema(description = "鍒犻櫎鏍囪瘑锛宖orm琛ㄥ崟涓笉瀛樺湪锛屽彧鍦ㄦ煡璇㈡樉绀轰腑鏈夋晥", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Byte deleted;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
new file mode 100644
index 0000000..2a1cf2d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/22 11:43
+ * @LastEditTime 2023/12/22 11:43
+ * @Description
+ */
+
+@Data
+@Schema(title = "鍐滄埛瑙嗗浘瀵硅薄")
+public class VoClient implements BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(title = "ID")
+    private Long id;
+
+    @Schema(title = "鍐滄埛濮撳悕")
+    private String name;
+
+    @Schema(title = "鍐滄埛缂栧彿")
+    private String clientNum;
+
+    @Schema(title = "鎵嬫満鍙�")
+    private String phone;
+
+    @Schema(title = "韬唤璇佸彿")
+    private String idCard;
+
+    @Schema(title = "鍗$墖鏁伴噺")
+    private Integer cardCount;
+
+    @Schema(title = "鍦板潃")
+    private String address;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @Schema(title = "娉ㄥ唽鏃堕棿")
+    private Date operateDt;
+
+
+}
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 4234af5..23dd4ce 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
@@ -139,4 +139,30 @@
     update ba_district set deleted = 1
     where id = #{id,jdbcType=BIGINT}
   </delete>
+
+  <!--鏍规嵁鏉戠紪鍙疯幏鍙�5绾у尯鍒掍俊鎭�-->
+  <select id="getDistrictsByVillageId" resultType="java.util.Map">
+    SELECT
+        pro.id AS provinceId,
+        pro.num AS provinceNum,
+        pro.name AS provinceName,
+        cit.id AS cityId,
+        cit.num AS cityNum,
+        cit.name AS cityName,
+        con.id AS countryId,
+        con.num AS countyNum,
+        con.name AS countryName,
+        tow.id AS townId,
+        tow.num AS townNum,
+        tow.name AS townName,
+        vil.id AS villageId,
+        vil.num AS villageNum,
+        vil.name AS villageName
+    FROM ba_district vil
+        INNER JOIN ba_district tow ON vil.supperId = tow.id
+        INNER JOIN ba_district con ON tow.supperId = con.id
+        INNER JOIN ba_district cit ON con.supperId = cit.id
+        INNER JOIN ba_district pro ON cit.supperId = pro.id
+    WHERE vil.id = ${villageId}
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
new file mode 100644
index 0000000..9975113
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -0,0 +1,340 @@
+<?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.daoSe.SeClientMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeClient">
+    <!--@mbg.generated-->
+    <!--@Table se_client-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="countyId" jdbcType="BIGINT" property="countyid" />
+    <result column="townId" jdbcType="BIGINT" property="townid" />
+    <result column="villageId" jdbcType="BIGINT" property="villageid" />
+    <result column="blockId" jdbcType="BIGINT" property="blockid" />
+    <result column="divideId" jdbcType="BIGINT" property="divideid" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
+    <result column="districtNum" jdbcType="BIGINT" property="districtnum" />
+    <result column="districtTitle" jdbcType="VARCHAR" property="districttitle" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="idCard" jdbcType="VARCHAR" property="idcard" />
+    <result column="area" jdbcType="DOUBLE" property="area" />
+    <result column="address" jdbcType="VARCHAR" property="address" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" />
+    <result column="disabled" jdbcType="TINYINT" property="disabled" />
+    <result column="deleted" jdbcType="TINYINT" property="deleted" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, countyId, townId, villageId, blockId, divideId, `name`, clientNum, districtNum, 
+    districtTitle, phone, idCard, area, address, remarks, `operator`, operateDt, disabled, 
+    deleted
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from se_client
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from se_client
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
+    <!--@mbg.generated-->
+    insert into se_client (id, countyId, townId, 
+      villageId, blockId, divideId, 
+      `name`, clientNum, districtNum, 
+      districtTitle, phone, idCard, 
+      area, address, remarks, 
+      `operator`, operateDt, disabled, 
+      deleted)
+    values (#{id,jdbcType=BIGINT}, #{countyid,jdbcType=BIGINT}, #{townid,jdbcType=BIGINT}, 
+      #{villageid,jdbcType=BIGINT}, #{blockid,jdbcType=BIGINT}, #{divideid,jdbcType=BIGINT}, 
+      #{name,jdbcType=VARCHAR}, #{clientnum,jdbcType=VARCHAR}, #{districtnum,jdbcType=BIGINT}, 
+      #{districttitle,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR}, 
+      #{area,jdbcType=DOUBLE}, #{address,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, 
+      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{disabled,jdbcType=TINYINT}, 
+      #{deleted,jdbcType=TINYINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
+    <!--@mbg.generated-->
+    insert into se_client
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="countyid != null">
+        countyId,
+      </if>
+      <if test="townid != null">
+        townId,
+      </if>
+      <if test="villageid != null">
+        villageId,
+      </if>
+      <if test="blockid != null">
+        blockId,
+      </if>
+      <if test="divideid != null">
+        divideId,
+      </if>
+      <if test="name != null">
+        `name`,
+      </if>
+      <if test="clientnum != null">
+        clientNum,
+      </if>
+      <if test="districtnum != null">
+        districtNum,
+      </if>
+      <if test="districttitle != null">
+        districtTitle,
+      </if>
+      <if test="phone != null">
+        phone,
+      </if>
+      <if test="idcard != null">
+        idCard,
+      </if>
+      <if test="area != null">
+        area,
+      </if>
+      <if test="address != null">
+        address,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operatedt != null">
+        operateDt,
+      </if>
+      <if test="disabled != null">
+        disabled,
+      </if>
+      <if test="deleted != null">
+        deleted,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="countyid != null">
+        #{countyid,jdbcType=BIGINT},
+      </if>
+      <if test="townid != null">
+        #{townid,jdbcType=BIGINT},
+      </if>
+      <if test="villageid != null">
+        #{villageid,jdbcType=BIGINT},
+      </if>
+      <if test="blockid != null">
+        #{blockid,jdbcType=BIGINT},
+      </if>
+      <if test="divideid != null">
+        #{divideid,jdbcType=BIGINT},
+      </if>
+      <if test="name != null">
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="clientnum != null">
+        #{clientnum,jdbcType=VARCHAR},
+      </if>
+      <if test="districtnum != null">
+        #{districtnum,jdbcType=BIGINT},
+      </if>
+      <if test="districttitle != null">
+        #{districttitle,jdbcType=VARCHAR},
+      </if>
+      <if test="phone != null">
+        #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="idcard != null">
+        #{idcard,jdbcType=VARCHAR},
+      </if>
+      <if test="area != null">
+        #{area,jdbcType=DOUBLE},
+      </if>
+      <if test="address != null">
+        #{address,jdbcType=VARCHAR},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operatedt != null">
+        #{operatedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="disabled != null">
+        #{disabled,jdbcType=TINYINT},
+      </if>
+      <if test="deleted != null">
+        #{deleted,jdbcType=TINYINT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
+    <!--@mbg.generated-->
+    update se_client
+    <set>
+      <if test="countyid != null">
+        countyId = #{countyid,jdbcType=BIGINT},
+      </if>
+      <if test="townid != null">
+        townId = #{townid,jdbcType=BIGINT},
+      </if>
+      <if test="villageid != null">
+        villageId = #{villageid,jdbcType=BIGINT},
+      </if>
+      <if test="blockid != null">
+        blockId = #{blockid,jdbcType=BIGINT},
+      </if>
+      <if test="divideid != null">
+        divideId = #{divideid,jdbcType=BIGINT},
+      </if>
+      <if test="name != null">
+        `name` = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="clientnum != null">
+        clientNum = #{clientnum,jdbcType=VARCHAR},
+      </if>
+      <if test="districtnum != null">
+        districtNum = #{districtnum,jdbcType=BIGINT},
+      </if>
+      <if test="districttitle != null">
+        districtTitle = #{districttitle,jdbcType=VARCHAR},
+      </if>
+      <if test="phone != null">
+        phone = #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="idcard != null">
+        idCard = #{idcard,jdbcType=VARCHAR},
+      </if>
+      <if test="area != null">
+        area = #{area,jdbcType=DOUBLE},
+      </if>
+      <if test="address != null">
+        address = #{address,jdbcType=VARCHAR},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operatedt != null">
+        operateDt = #{operatedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="disabled != null">
+        disabled = #{disabled,jdbcType=TINYINT},
+      </if>
+      <if test="deleted != null">
+        deleted = #{deleted,jdbcType=TINYINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
+    <!--@mbg.generated-->
+    update se_client
+    set countyId = #{countyid,jdbcType=BIGINT},
+      townId = #{townid,jdbcType=BIGINT},
+      villageId = #{villageid,jdbcType=BIGINT},
+      blockId = #{blockid,jdbcType=BIGINT},
+      divideId = #{divideid,jdbcType=BIGINT},
+      `name` = #{name,jdbcType=VARCHAR},
+      clientNum = #{clientnum,jdbcType=VARCHAR},
+      districtNum = #{districtnum,jdbcType=BIGINT},
+      districtTitle = #{districttitle,jdbcType=VARCHAR},
+      phone = #{phone,jdbcType=VARCHAR},
+      idCard = #{idcard,jdbcType=VARCHAR},
+      area = #{area,jdbcType=DOUBLE},
+      address = #{address,jdbcType=VARCHAR},
+      remarks = #{remarks,jdbcType=VARCHAR},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operateDt = #{operatedt,jdbcType=TIMESTAMP},
+      disabled = #{disabled,jdbcType=TINYINT},
+      deleted = #{deleted,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+
+  <!--鏍规嵁6浣嶅尯鍒掍覆妯$硦鏌ヨ鍐滄埛缂栧彿-->
+  <select id="getClientNumOfMax"  resultType="java.lang.String">
+    SELECT clientNum
+    FROM se_client
+    WHERE clientNum LIKE CONCAT('%',#{district8},'%')
+    ORDER BY clientNum desc
+    LIMIT 0,1
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
+  <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
+    SELECT
+        COUNT(*) AS recordCount
+    FROM se_client cli
+    , (SELECT @i:=0) AS itable
+    <where>
+      AND disabled = 0
+      AND deleted = 0
+      <if test = "name != null and name !=''">
+        AND name like CONCAT('%',#{name},'%')
+      </if>
+
+      <if test = "num != null and num !=''">
+        AND clientNum like CONCAT('%',#{num},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND phone like CONCAT('%',#{phone},'%')
+      </if>
+    </where>
+
+  </select>
+
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
+  <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
+    SELECT
+        (@i:=@i+1) AS id,
+        name,
+        clientNum,
+        phone,
+        idCard,
+        (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount,
+        address,
+        operateDt
+    FROM se_client cli
+        , (SELECT @i:=0) AS itable
+    <where>
+      AND disabled = 0
+      AND deleted = 0
+      <if test = "name != null and name !=''">
+        AND name like CONCAT('%',#{name},'%')
+      </if>
+
+      <if test = "clientNum != null and clientNum !=''">
+        AND clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+      <if test = "phone != null and phone !=''">
+        AND phone like CONCAT('%',#{phone},'%')
+      </if>
+
+      <if test = "address != null and address !=''">
+        AND address like CONCAT('%',#{address},'%')
+      </if>
+    </where>
+    ORDER BY operateDt DESC
+    <if test="pageCurr != null and pageSize != null">
+      LIMIT ${pageCurr}, ${pageSize}
+    </if>
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java
index 002e818..0d361bc 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-demo/src/main/java/com/dy/pipIrrDemo/demo/DemoCtrl.java
@@ -67,7 +67,7 @@
     })
     @GetMapping("info/{id}/")
     //http://127.0.0.1:8000/demo/demo/info/123234234/?name=寮犱笁
-    @SsoAop(power="123456", ifAllPower = {"123", "456"})
+    @SsoAop()
     public BaseResponse<String> info(@PathVariable String id, @RequestParam String name) throws GlException{
         if(name == null || name.trim().equals("")){
             return BaseResponseUtils.buildFail(ResultCodeMsg.RsMsg.ERROR_PARAM);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
index 989cf44..f6d2a12 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -27,6 +27,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -84,7 +85,7 @@
     })
     @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
-    @SsoAop()//@SsoAop(power = "-1")
+    @SsoAop()
     public BaseResponse<Boolean> add(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid PrDivide po, @Parameter(hidden = true) BindingResult bindingResult){
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         if(bindingResult != null && bindingResult.hasErrors()){
@@ -101,6 +102,11 @@
     }
 
 
+    /**
+     * 瀵煎嚭鍒嗘按鎴垮垪琛�
+     * @param response
+     * @param vo
+     */
     @SneakyThrows(IOException.class)
     @RequestMapping(value = "/exportDivides", method = RequestMethod.GET)
     public void exportDivides(HttpServletResponse response, QueryVo vo) {
@@ -115,6 +121,17 @@
                 .doWrite(memberList);
     }
 
+    @SneakyThrows
+    @RequestMapping(value = "/importDivides", method = RequestMethod.POST)
+    @ResponseBody
+    public BaseResponse<Boolean> importDivides(@RequestPart("file") MultipartFile file) {
+        List<VoDivide> memberList = EasyExcel.read(file.getInputStream())
+                .head(VoDivide.class)
+                .sheet()
+                .doReadSync();
+        return BaseResponseUtils.buildSuccess(memberList) ;
+    }
+
     /**
      * 璁剧疆excel涓嬭浇鍝嶅簲澶村睘鎬�
      */
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
new file mode 100644
index 0000000..bcccdf0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -0,0 +1,156 @@
+package com.dy.pipIrrSell.client;
+
+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.BaClient;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.pipIrrGlobal.voSe.VoClient;
+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.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/21 19:17
+ * @LastEditTime 2023/12/21 19:17
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鍐滄埛绠$悊", description = "鍐滄埛鎿嶄綔")
+@RestController
+@RequestMapping(path="client")
+@RequiredArgsConstructor
+public class ClientCtrl {
+    private final ClientSv clientSv;
+
+    @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 = BaClient.class))}
+            )
+    })
+    @GetMapping(path = "get")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoClient>>> get(QueryVo vo){
+        try {
+            QueryResultVo<List<VoClient>> res = clientSv.getClients(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鏌ヨ鍐滄埛寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
+
+    @Operation(summary = "娣诲姞鍐滄埛璁板綍", description = "娣诲姞鍐滄埛璁板綍")
+    @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 = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoClient po, @Parameter(hidden = true) BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        // 鎺ユ敹鏉戠紪鍙凤紙涓婚敭锛�
+        Long villageId = po.getVillageid();
+
+        /**
+         * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
+         */
+        Map map_districts = Optional.ofNullable(clientSv.getDistrictsByVillageId(villageId)).orElse(new HashMap());
+        if(map_districts.size() <= 0) {
+            return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
+        }
+
+        String provinceNum = map_districts.get("provinceNum").toString();
+        String cityNum = map_districts.get("cityNum").toString();
+        Long countryId = Long.parseLong(map_districts.get("countryId").toString());
+        String countyNum = map_districts.get("countyNum").toString();
+        String countryName = map_districts.get("countryName").toString();
+        Long townId = Long.parseLong(map_districts.get("townId").toString());
+        String townNum = map_districts.get("townNum").toString();
+        String townName = map_districts.get("townName").toString();
+        String villageNum = map_districts.get("villageNum").toString();
+        String villageName = map_districts.get("villageName").toString();
+
+        // 鐢熸垚8浣嶈鏀垮尯鍒掔紪鐮侊紝鐢熸垚鍐滄埛缂栧彿鐢�
+        String district8 = countyNum + townNum + villageNum;
+        // 鐢熸垚鍐滄埛缂栧彿
+        String clientNum = generateClientNum(district8);
+        // 鐢熸垚12浣�5绾ц鏀垮尯鍒掔紪鐮佷覆鍙婂悕绉颁覆
+        Long districtNum = Long.parseLong(provinceNum + cityNum + district8);
+        String districtTitle = countryName + townName + villageName;
+
+        SeClient seClient = DtoClientToSeClient.INSTANCT.po2vo(po);
+        seClient.setCountyid(countryId);
+        seClient.setTownid(townId);
+        seClient.setClientnum(clientNum);
+        seClient.setDistrictnum(districtNum);
+        seClient.setDistricttitle(districtTitle);
+        Date operateTime = new Date();
+        seClient.setOperatedt(operateTime);
+
+        seClient.setDisabled((byte)0);
+        seClient.setDeleted((byte)0);
+        Integer rec = Optional.ofNullable(clientSv.addClient(seClient)).orElse(0);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail("娣诲姞鍐滄埛澶辫触");
+        }
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+    /**
+     * 鐢熸垚10涓哄啘鎴风紪鍙�
+     * 1. 鍒板啘鎴疯〃涓煡璇�6浣嶅尯鍒掍覆寮�澶寸殑鏈�澶х殑鍐滄埛缂栧彿
+     * 2. 鏄惁鍙栧埌璁板綍
+     *      2.1 鍙栧埌
+     *          2.1.1 鍙栧嚭鍚�4浣嶉『搴忓彿骞惰浆鎴愭暣褰�
+     *          2.1.2. 鏁村舰鏍煎紡鐨勯『搴忓彿鍔�1骞跺垽鏂槸鍚﹀ぇ浜�9999
+     *              2.1.2.1 濡傛灉澶т簬鍒欐彁绀虹敤鎴风紪鍙峰凡婊�
+     *              2.1.2.2 濡傛灉涓嶅ぇ 6浣嶅尯鍒掑姞涓婃牸寮忓寲鍚庣殑椤哄簭鍙�
+     *      2.2 鏈彇鍒� 6浣嶅尯鍒掑姞涓�0001
+     * 3. 杩斿洖鍐滄埛缂栧彿
+     */
+    private String generateClientNum(String district8) {
+        String clientNum = Optional.ofNullable(clientSv.getClientNumOfMax(district8)).orElse("");
+        if(clientNum != null && clientNum.trim().length() > 0) {
+            Integer number = Integer.parseInt(clientNum.substring(8));
+            number = number + 1;
+            if(number > 9999) {
+                return "鍐滄埛缂栧彿瓒呴檺";
+            }
+            clientNum = clientNum.substring(0, 8) + String.format("%04d", number);
+        } else {
+            clientNum = district8 + "0001";
+        }
+        return clientNum;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
new file mode 100644
index 0000000..eb16e9d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientSv.java
@@ -0,0 +1,76 @@
+package com.dy.pipIrrSell.client;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper;
+import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import com.dy.pipIrrGlobal.voSe.VoClient;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/21 19:17
+ * @LastEditTime 2023/12/21 19:17
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class ClientSv {
+    @Autowired
+    private SeClientMapper seClientMapper;
+
+    @Autowired
+    private BaDistrictMapper baDistrictMapper;
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁
+     * @param vo
+     * @return
+     */
+    public QueryResultVo<List<VoClient>> getClients(QueryVo vo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
+        Long itemTotal = seClientMapper.getRecordCount(params);
+
+        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = vo.pageSize ;
+        rsVo.pageCurr = vo.pageCurr ;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = seClientMapper.getClients(params);
+
+        return rsVo ;
+    }
+
+    /**
+     * 澧炲紑鍐滄埛
+     * @param po
+     * @return
+     */
+    public Integer addClient(SeClient po) {
+        return seClientMapper.insert(po);
+    }
+
+    /**
+     * 鏍规嵁6浣嶅尯鍒掍覆妯$硦鏌ヨ鍐滄埛缂栧彿
+     * @param district6
+     * @return
+     */
+    public String getClientNumOfMax(String district6) {
+        return seClientMapper.getClientNumOfMax(district6);
+    }
+
+    /**
+     * 鏍规嵁鏉戠紪鍙疯幏鍙�5绾у尯鍒掍俊鎭�
+     * @param villageId 鏉戠紪鍙凤紙涓婚敭锛�
+     * @return 5绾ц鏀垮尯鍒掍俊鎭�
+     */
+    public Map getDistrictsByVillageId(Long villageId) {
+        return baDistrictMapper.getDistrictsByVillageId(villageId);
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java
new file mode 100644
index 0000000..7d417ca
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClient.java
@@ -0,0 +1,96 @@
+package com.dy.pipIrrSell.client;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.*;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/22 8:41
+ * @LastEditTime 2023/12/22 8:41
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鍒涘缓鍐滄埛浼犲叆瀵硅薄")
+public class DtoClient {
+    public static final long serialVersionUID = 1L;
+
+    /**
+     * 鏉慖D
+     */
+    @Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
+    private Long villageid;
+
+    /**
+     * 鐗囧尯ID
+     */
+    @Schema(description = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�")
+    private Long blockid;
+
+    /**
+     * 鍒嗘按鎴縄D
+     */
+    @Schema(description = "鎵�鍦ㄥ垎姘存埧ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄥ垎姘存埧涓嶈兘涓虹┖")
+    private Long divideid;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    @Schema(description = "鍐滄埛濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鍐滄埛濮撳悕涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛濮撳悕涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 25)
+    private String name;
+
+    /**
+     * 鎵嬫満鍙�
+     */
+    @Schema(description = "鍐滄埛鎵嬫満鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotEmpty(message = "鍐滄埛鎵嬫満鍙蜂笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛鎵嬫満鍙峰繀椤粄max}浣嶆暟鎹�", min = 11, max = 11)
+    private String phone;
+
+    /**
+     * 韬唤璇佸彿
+     */
+    @Schema(description = "鍐滄埛韬唤璇佸彿", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鍐滄埛韬唤璇佸彿涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
+    @Length(message = "鍐滄埛韬唤璇佸彿蹇呴』{max}浣嶆暟鎹�", min = 18, max = 18)
+    private String idcard;
+
+    /**
+     * 绉嶆闈㈢Н
+     */
+    @Schema(description = "鍐滄埛绉嶆闈㈢Н", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Double area;
+
+    /**
+     * 琛楅亾鍙婇棬鐗屽彿
+     */
+    @Schema(description = "琛楅亾+闂ㄧ墝鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鍦板潃涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 50)
+    private String address;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "澶囨敞涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 200)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    private Long operator;
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClientToSeClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClientToSeClient.java
new file mode 100644
index 0000000..2130c60
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/DtoClientToSeClient.java
@@ -0,0 +1,30 @@
+package com.dy.pipIrrSell.client;
+
+import com.dy.pipIrrGlobal.pojoSe.SeClient;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/22 9:23
+ * @LastEditTime 2023/12/22 9:23
+ * @Description
+ */
+
+@Mapper
+public interface DtoClientToSeClient {
+    DtoClientToSeClient INSTANCT = Mappers.getMapper(DtoClientToSeClient.class);
+
+    @Mapping(target = "villageid", source = "villageid")
+    @Mapping(target = "blockid", source = "blockid")
+    @Mapping(target = "divideid", source = "divideid")
+    @Mapping(target = "name", source = "name")
+    @Mapping(target = "phone", source = "phone")
+    @Mapping(target = "idcard", source = "idcard")
+    @Mapping(target = "area", source = "area")
+    @Mapping(target = "address", source = "address")
+    @Mapping(target = "remarks", source = "remarks")
+    @Mapping(target = "operator", source = "operator")
+    SeClient po2vo(DtoClient po);
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/QueryVo.java
new file mode 100644
index 0000000..28d645c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/QueryVo.java
@@ -0,0 +1,46 @@
+package com.dy.pipIrrSell.client;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/21 19:18
+ * @LastEditTime 2023/12/21 19:18
+ * @Description
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@Schema(name = "鍐滄埛鏌ヨ鏉′欢")
+public class QueryVo extends QueryConditionVo {
+
+    //@Schema(description = "鍘縄D")
+    //public Long countyId ;
+    //
+    //@Schema(description = "闀嘔D")
+    //public Long townId ;
+    //
+    //@Schema(description = "鏉慖D")
+    //public Long villageId ;
+    //
+    //@Schema(description = "鐗囧尯ID")
+    //public Long blockId ;
+
+    @Schema(description = "鍐滄埛濮撳悕")
+    public String name;
+
+    @Schema(description = "鍐滄埛缂栧彿")
+    public String clientNum;
+
+    @Schema(description = "鍐滄埛鐢佃瘽")
+    public String phone;
+
+    @Schema(description = "鍦板潃")
+    public String address;
+}
\ No newline at end of file

--
Gitblit v1.8.0