From 7bf80c057f8e17fd37f1936e5b8dc1e1efad4bea Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 11 七月 2024 20:32:14 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml                                       |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardCtrl.java               |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java       |   27 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java                                  |    3 
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml                                              |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java                       |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java     |   21 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupClient.java                                 |   69 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java         |   15 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/OrderStateENUM.java      |   21 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java               |  119 ++---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java                     |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundStateENUM.java     |   22 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupClientMapper.java                            |   27 +
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java     |   65 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ActiveCard.java                |   64 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java                         |    5 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                                            |   19 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrUnitClientMapper.java                             |   28 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrUnitClient.java                                  |   68 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/dto/UnitClient.java       |   34 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaBlock.java                                       |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java               |    1 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java     |   27 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java             |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoAudit.java              |   35 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                                |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java         |   14 
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java                                  |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRefund.java             |   30 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupClientMapper.xml                                           |  102 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUM.java |   21 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java                      |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java        |   41 ++
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml                                              |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrUnitClientMapper.xml                                            |  102 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java   |   37 +
 pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/GroupClient.java     |   34 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRegist.java             |   23 +
 39 files changed, 996 insertions(+), 121 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
index e7606f5..95bcee8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
@@ -44,6 +44,10 @@
         return buildResult(ResultCodeMsg.RsCode.ERROR_CODE, msg, null);
     }
 
+    public static BaseResponse buildCodeMsg(Integer code, String msg) {
+        return buildResult(String.valueOf(code), msg, null);
+    }
+
     public static BaseResponse buildError(Object obj){
         return buildResult(ResultCodeMsg.RsCode.ERROR_CODE,ResultCodeMsg.RsMsg.ERROR_MESSAGE, obj);
     }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupClientMapper.java
new file mode 100644
index 0000000..cd16d9d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrGroupClientMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoIr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupClient;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 14:48
+ * @LastEditTime 2024-07-10 14:48
+ * @Description
+ */
+
+@Mapper
+public interface IrGroupClientMapper extends BaseMapper<IrGroupClient> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(IrGroupClient record);
+
+    int insertSelective(IrGroupClient record);
+
+    IrGroupClient selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(IrGroupClient record);
+
+    int updateByPrimaryKey(IrGroupClient record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrUnitClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrUnitClientMapper.java
new file mode 100644
index 0000000..2721de6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoIr/IrUnitClientMapper.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.daoIr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrUnitClient;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 14:47
+ * @LastEditTime 2024-07-10 14:47
+ * @Description
+ */
+
+@Mapper
+public interface IrUnitClientMapper extends BaseMapper<IrUnitClient> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(IrUnitClient record);
+
+    int insertSelective(IrUnitClient record);
+
+    IrUnitClient selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(IrUnitClient record);
+
+    int updateByPrimaryKey(IrUnitClient record);
+
+}
\ No newline at end of file
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
index 8197a98..95534be 100644
--- 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
@@ -66,14 +66,14 @@
      * 鐢靛瓙鍦板浘鍖哄煙鐫�鑹�
      */
     @Schema(description = "鍖哄煙鐫�鑹�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "鍖哄煙鐫�鑹查暱搴﹀皬浜巤max}瀛�", min = 1, max = 6)
+    @Length(message = "鍖哄煙鐫�鑹查暱搴﹀皬浜巤max}瀛�", min = 0, max = 6)
     public String color;
 
     /**
      * 澶囨敞
      */
     @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 50)
+    @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 0, max = 50)
     public String remark;
 
     /**
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupClient.java
new file mode 100644
index 0000000..d285396
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrGroupClient.java
@@ -0,0 +1,69 @@
+package com.dy.pipIrrGlobal.pojoIr;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 14:48
+ * @LastEditTime 2024-07-10 14:48
+ * @Description
+ */
+/**
+ * 杞亴缁勫啘鎴峰叧鑱旇〃
+ */
+
+@TableName(value="ir_group_client", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "杞亴缁勫啘鎴峰叧鑱斿疄浣�")
+public class IrGroupClient implements BaseEntity {
+    public static final long serialVersionUID = 202407101455001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 杞亴缁処D
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "杞亴缁勪笉鑳戒负绌�")
+    private Long groupId;
+
+    /**
+    * 鍐滄埛ID
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+    * 鍒涘缓浜�
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long operator;
+
+    /**
+    * 鍒涘缓鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operateTime;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrUnitClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrUnitClient.java
new file mode 100644
index 0000000..d8f97e9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoIr/IrUnitClient.java
@@ -0,0 +1,68 @@
+package com.dy.pipIrrGlobal.pojoIr;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 14:47
+ * @LastEditTime 2024-07-10 14:47
+ * @Description
+ */
+/**
+ * 鐏屾簤鍗曞厓鍐滄埛鍏宠仈琛�
+ */
+
+@TableName(value="ir_unit_client", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鐏屾簤鍗曞厓鍐滄埛鍏宠仈瀹炰綋")
+public class IrUnitClient implements BaseEntity {
+    public static final long serialVersionUID = 202407101454001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 鐏屾簤鍗曞厓ID
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鐏屾簤鍗曞厓涓嶈兘涓虹┖")
+    private Long unitId;
+
+    /**
+    * 鍐滄埛ID
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+    * 鍒涘缓浜�
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long operator;
+
+    /**
+    * 鍒涘缓鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operateTime;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
index bc9dad6..5ca5088 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
@@ -44,6 +44,9 @@
     @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long id;
 
+    @NotBlank(message = "閫氳鍗忚涓嶈兘涓虹┖")
+    private String protocol;
+
     /**
      * 姘村崱鍦板潃
      */
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
index a4c1803..f9678d7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-sp.yml
@@ -5,8 +5,8 @@
       #name: sp
       type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: com.mysql.cj.jdbc.Driver
-      url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
-#      url: jdbc:mysql://8.140.179.55:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#      url: jdbc:mysql://192.168.40.166:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+      url: jdbc:mysql://127.0.0.1:3306/pipIrr_sp?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
       username: root
       password: dysql,;.abc!@#
       druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 3b1c640..ab10469 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,8 +5,8 @@
             #name: ym
             type: com.alibaba.druid.pool.DruidDataSource
             driverClassName: com.mysql.cj.jdbc.Driver
-            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
-#            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#            url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+            url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
 #            url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
             username: root
             password: dysql,;.abc!@#
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupClientMapper.xml
new file mode 100644
index 0000000..6a2a9a7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrGroupClientMapper.xml
@@ -0,0 +1,102 @@
+<?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.daoIr.IrGroupClientMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrGroupClient">
+    <!--@mbg.generated-->
+    <!--@Table ir_group_client-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="group_id" jdbcType="BIGINT" property="groupId" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, group_id, client_id, `operator`, operate_time
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from ir_group_client
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from ir_group_client
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupClient">
+    <!--@mbg.generated-->
+    insert into ir_group_client (id, group_id, client_id, 
+      `operator`, operate_time)
+    values (#{id,jdbcType=BIGINT}, #{groupId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
+      #{operator,jdbcType=BIGINT}, #{operateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupClient">
+    <!--@mbg.generated-->
+    insert into ir_group_client
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="groupId != null">
+        group_id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operateTime != null">
+        operate_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="groupId != null">
+        #{groupId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupClient">
+    <!--@mbg.generated-->
+    update ir_group_client
+    <set>
+      <if test="groupId != null">
+        group_id = #{groupId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrGroupClient">
+    <!--@mbg.generated-->
+    update ir_group_client
+    set group_id = #{groupId,jdbcType=BIGINT},
+      client_id = #{clientId,jdbcType=BIGINT},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operate_time = #{operateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrUnitClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrUnitClientMapper.xml
new file mode 100644
index 0000000..6d74a8b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/IrUnitClientMapper.xml
@@ -0,0 +1,102 @@
+<?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.daoIr.IrUnitClientMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoIr.IrUnitClient">
+    <!--@mbg.generated-->
+    <!--@Table ir_unit_client-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="unit_id" jdbcType="BIGINT" property="unitId" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, unit_id, client_id, `operator`, operate_time
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from ir_unit_client
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from ir_unit_client
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoIr.IrUnitClient">
+    <!--@mbg.generated-->
+    insert into ir_unit_client (id, unit_id, client_id, 
+      `operator`, operate_time)
+    values (#{id,jdbcType=BIGINT}, #{unitId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
+      #{operator,jdbcType=BIGINT}, #{operateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrUnitClient">
+    <!--@mbg.generated-->
+    insert into ir_unit_client
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="unitId != null">
+        unit_id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operateTime != null">
+        operate_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="unitId != null">
+        #{unitId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoIr.IrUnitClient">
+    <!--@mbg.generated-->
+    update ir_unit_client
+    <set>
+      <if test="unitId != null">
+        unit_id = #{unitId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoIr.IrUnitClient">
+    <!--@mbg.generated-->
+    update ir_unit_client
+    set unit_id = #{unitId,jdbcType=BIGINT},
+      client_id = #{clientId,jdbcType=BIGINT},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operate_time = #{operateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 2d7461b..af30365 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -404,7 +404,7 @@
         rtus.isOnLine = #{isOnLine}
       </if>
       <if test="intakeNum != null and intakeNum != ''">
-        AND inta.name LIKE CONCAT('%', #{intakeNum}, '%')
+        AND inta.name = #{intakeNum}
       </if>
     </where>
     order by con.id ASC
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 35e5a3c..d828d9e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -5,6 +5,7 @@
     <!--@mbg.generated-->
     <!--@Table se_client_card-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="protocol" jdbcType="VARCHAR" property="protocol" />
     <result column="cardAddr" jdbcType="VARCHAR" property="cardaddr" />
     <result column="cardNum" jdbcType="BIGINT" property="cardnum" />
     <result column="clientId" jdbcType="BIGINT" property="clientid" />
@@ -25,7 +26,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, replaceDt, rechargeDt,
+    id, protocol, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, replaceDt, rechargeDt,
     lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -84,13 +85,13 @@
 
   <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
     <!--@mbg.generated-->
-    insert into se_client_card (id, cardAddr, cardNum, clientId,
+    insert into se_client_card (id, protocol, cardAddr, cardNum, clientId,
       money, `state`, original_card_id, createDt,
       replaceDt, rechargeDt, lossDtDt, 
       cancelDt, unlockDt, reversalDt, refundDt,
       consumeDt, lastOper, remarks
       )
-    values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
+    values (#{id,jdbcType=BIGINT}, #{protocol,jdbcType=VARCHAR}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
       #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{originalCardId,jdbcType=BIGINT}, #{createdt,jdbcType=TIMESTAMP},
       #{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP}, 
       #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
@@ -102,6 +103,9 @@
     <!--@mbg.generated-->
     insert into se_client_card
     <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="protocol != null">
+        protocol,
+      </if>
       <if test="cardaddr != null">
         cardAddr,
       </if>
@@ -155,6 +159,9 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="protocol != null">
+        #{protocol,jdbcType=VARCHAR},
+      </if>
       <if test="cardaddr != null">
         #{cardaddr,jdbcType=VARCHAR},
       </if>
@@ -212,6 +219,9 @@
     <!--@mbg.generated-->
     update se_client_card
     <set>
+      <if test="protocol != null">
+        protocol = #{protocol,jdbcType=VARCHAR},
+      </if>
       <if test="cardaddr != null">
         cardAddr = #{cardaddr,jdbcType=VARCHAR},
       </if>
@@ -269,7 +279,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
     <!--@mbg.generated-->
     update se_client_card
-    set cardAddr = #{cardaddr,jdbcType=VARCHAR},
+    set protocol = #{protocol,jdbcType=VARCHAR}
+    cardAddr = #{cardaddr,jdbcType=VARCHAR},
       cardNum = #{cardnum,jdbcType=BIGINT},
       clientId = #{clientid,jdbcType=BIGINT},
       money = #{money,jdbcType=FLOAT},
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
index 1523ef4..c0c22f6 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -3,7 +3,8 @@
     datasource: #閰嶇疆鏁版嵁婧�
         type: com.alibaba.druid.pool.DruidDataSource
         driver-class-name: com.mysql.cj.jdbc.Driver
-        url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#        url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+        url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         username: root
         password: dysql,;.abc!@#
         druid:
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
index f94e15f..e3d4abe 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupCtrl.java
@@ -5,16 +5,13 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupClient;
 import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
-import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
 import com.dy.pipIrrGlobal.voIr.VoGroup;
 import com.dy.pipIrrGlobal.voIr.VoGroupOne;
-import com.dy.pipIrrGlobal.voIr.VoUnit;
-import com.dy.pipIrrGlobal.voIr.VoUnitOne;
 import com.dy.pipIrrGlobal.voSe.VoActiveCard;
-import com.dy.pipIrrIrrigate.irrigateUnit.IrrigateUnitSv;
-import com.dy.pipIrrIrrigate.irrigateGroup.QueryVo;
+import com.dy.pipIrrIrrigate.irrigateGroup.dto.GroupClient;
 import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -415,4 +412,34 @@
         }
         return BaseResponseUtils.buildSuccess(true);
     }
+
+    /**
+     * 杞亴缁勫叧鑱斿啘鎴�
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "add_group_client", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addGroupClient(@RequestBody @Valid GroupClient po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        IrGroupClient irGroupClient = new IrGroupClient();
+        irGroupClient.setGroupId(po.getGroupId());
+        irGroupClient.setClientId(po.getClientId());
+        irGroupClient.setOperator(po.getOperator());
+        irGroupClient.setOperateTime(new Date());
+
+        try {
+            Long rec = Optional.ofNullable(irrigateGroupSv.addGroupClient(irGroupClient)).orElse(0L);
+            if (rec == 0) {
+                return BaseResponseUtils.buildErrorMsg(IrrigateResultCode.GRPUP_ASSOCIATE_CLIENT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
index d1e3e50..76dd797 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/IrrigateGroupSv.java
@@ -1,8 +1,10 @@
 package com.dy.pipIrrIrrigate.irrigateGroup;
 
 import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoIr.IrGroupClientMapper;
 import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper;
 import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper;
+import com.dy.pipIrrGlobal.pojoIr.IrGroupClient;
 import com.dy.pipIrrGlobal.pojoIr.IrGroupUnit;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigateGroup;
 import com.dy.pipIrrGlobal.voIr.VoGroup;
@@ -25,11 +27,13 @@
 @Slf4j
 @Service
 public class IrrigateGroupSv {
-
     @Autowired
     private IrIrrigateGroupMapper irIrrigateGroupMapper;
     @Autowired
     private IrGroupUnitMapper irGroupUnitMapper;
+
+    @Autowired
+    private IrGroupClientMapper irGroupClientMapper;
 
     /**
      * 鍒涘缓杞亴缁�
@@ -149,4 +153,19 @@
         List<Long> notBindUnits = irGroupUnitMapper.getNotBindUnits();
         return notBindUnits;
     }
+
+    //杞亴缁勫叧鑱斿啘鎴�
+    public Long addGroupClient(IrGroupClient po) {
+        irGroupClientMapper.insert(po);
+        return po.getId();
+    }
+
+    /**
+     * 鍒犻櫎杞亴缁勪笌鍐滄埛绠$悊
+     * @param id
+     * @return
+     */
+    public Integer deleteGroupClient (Long id) {
+        return irGroupClientMapper.deleteByPrimaryKey(id);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/GroupClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/GroupClient.java
new file mode 100644
index 0000000..05d6708
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateGroup/dto/GroupClient.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrIrrigate.irrigateGroup.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 16:37
+ * @LastEditTime 2024-07-10 16:37
+ * @Description 杞亴缁勫啘鎴峰叧鑱斿璞�
+ */
+
+@Data
+public class GroupClient {
+    public static final long serialVersionUID = 202407101638001L;
+
+    /**
+     * 杞亴缁処D
+     */
+    @NotNull(message = "杞亴缁勪笉鑳戒负绌�")
+    private Long groupId;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+     * 鎿嶄綔鍛�
+     */
+    @NotNull(message = "鎿嶄綔鍛樹笉鑳戒负绌�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
index 2688634..496e055 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitCtrl.java
@@ -7,13 +7,11 @@
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
-import com.dy.pipIrrGlobal.pojoIr.IrProject;
-import com.dy.pipIrrGlobal.voIr.VoProject;
-import com.dy.pipIrrGlobal.voIr.VoProjectOne;
+import com.dy.pipIrrGlobal.pojoIr.IrUnitClient;
 import com.dy.pipIrrGlobal.voIr.VoUnit;
 import com.dy.pipIrrGlobal.voIr.VoUnitOne;
 import com.dy.pipIrrGlobal.voSe.VoActiveCard;
-import com.dy.pipIrrIrrigate.irrigateUnit.QueryVo;
+import com.dy.pipIrrIrrigate.irrigateUnit.dto.UnitClient;
 import com.dy.pipIrrIrrigate.result.IrrigateResultCode;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -30,10 +28,7 @@
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author :WuZeYu
@@ -229,4 +224,58 @@
             return BaseResponseUtils.buildException(e.getMessage());
         }
     }
+
+    /**
+     * 鐏屾簤鍗曞厓鍒嗛厤锛堝啘鎴风鍦帮級
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "add_unit_client", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addUnitClient(@RequestBody @Valid UnitClient po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        IrUnitClient irUnitClient = new IrUnitClient();
+        irUnitClient.setUnitId(po.getUnitId());
+        irUnitClient.setClientId(po.getClientId());
+        irUnitClient.setOperator(po.getOperator());
+        irUnitClient.setOperateTime(new Date());
+
+        try {
+            Long rec = Optional.ofNullable(irrigateUnitSv.addUnitClient(irUnitClient)).orElse(0L);
+            if (rec == 0) {
+                return BaseResponseUtils.buildErrorMsg(IrrigateResultCode.UNIT_ASSOCIATE_CLIENT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    @PostMapping(path = "delete_unit_client", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> deleteUnitClient(@RequestBody @Valid UnitClient po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+        IrUnitClient irUnitClient = new IrUnitClient();
+        irUnitClient.setUnitId(po.getUnitId());
+        irUnitClient.setClientId(po.getClientId());
+        irUnitClient.setOperator(po.getOperator());
+        irUnitClient.setOperateTime(new Date());
+
+        try {
+            Long rec = Optional.ofNullable(irrigateUnitSv.addUnitClient(irUnitClient)).orElse(0L);
+            if (rec == 0) {
+                return BaseResponseUtils.buildErrorMsg(IrrigateResultCode.UNIT_ASSOCIATE_CLIENT_FAIL.getMessage());
+            }
+        } catch (Exception e) {
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+        return BaseResponseUtils.buildSuccess(true);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
index 195f8cb..3ad9207 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/IrrigateUnitSv.java
@@ -3,14 +3,11 @@
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoIr.IrGroupUnitMapper;
 import com.dy.pipIrrGlobal.daoIr.IrIrrigateUnitMapper;
-import com.dy.pipIrrGlobal.daoIr.IrProjectMapper;
+import com.dy.pipIrrGlobal.daoIr.IrUnitClientMapper;
 import com.dy.pipIrrGlobal.pojoIr.IrIrrigateUnit;
-import com.dy.pipIrrGlobal.pojoIr.IrProject;
-import com.dy.pipIrrGlobal.voIr.VoProject;
-import com.dy.pipIrrGlobal.voIr.VoProjectOne;
+import com.dy.pipIrrGlobal.pojoIr.IrUnitClient;
 import com.dy.pipIrrGlobal.voIr.VoUnit;
 import com.dy.pipIrrGlobal.voIr.VoUnitOne;
-import com.dy.pipIrrIrrigate.irrigateUnit.QueryVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,11 +26,13 @@
 @Slf4j
 @Service
 public class IrrigateUnitSv {
-
     @Autowired
     private IrIrrigateUnitMapper irIrrigateUnitMapper;
     @Autowired
     private IrGroupUnitMapper irGroupUnitMapper;
+
+    @Autowired
+    private IrUnitClientMapper irUnitClientMapper;
 
     /**
      * 鍒涘缓鐏屾簤鍗曞厓
@@ -105,4 +104,20 @@
         rsVo.obj = irIrrigateUnitMapper.getUnits(params);
         return rsVo;
     }
+
+    //鐏屾簤鍗曞厓鍒嗛厤锛堝啘鎴风鍦帮級
+    public Long addUnitClient(IrUnitClient po) {
+        irUnitClientMapper.insert(po);
+        return po.getId();
+    }
+
+    /**
+     * 鍒犻櫎鐏屾簤鍗曞厓涓庡啘鎴峰叧鑱�
+     * @param id
+     * @return
+     */
+    public Integer deleteUnitClient(Long id) {
+        return irUnitClientMapper.deleteByPrimaryKey(id);
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/dto/UnitClient.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/dto/UnitClient.java
new file mode 100644
index 0000000..72d435d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/irrigateUnit/dto/UnitClient.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrIrrigate.irrigateUnit.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-10 15:35
+ * @LastEditTime 2024-07-10 15:35
+ * @Description 鐏屾簤鍗曞厓鍐滄埛鍏宠仈瀵硅薄
+ */
+
+@Data
+public class UnitClient {
+    public static final long serialVersionUID = 202407101536001L;
+
+    /**
+     * 鐏屾簤鍗曞厓ID
+     */
+    @NotNull(message = "鐏屾簤鍗曞厓涓嶈兘涓虹┖")
+    private Long unitId;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+     * 鎿嶄綔鍛�
+     */
+    @NotNull(message = "鎿嶄綔鍛樹笉鑳戒负绌�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
index 2dec946..da259a9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-irrigate/src/main/java/com/dy/pipIrrIrrigate/result/IrrigateResultCode.java
@@ -20,12 +20,18 @@
     PLEASE_INPUT_PROJECT_ID(10002, "璇疯緭鍏ラ」鐩甀D"),
     DELETE_PROJECT_FAIL(10003, "椤圭洰鍒犻櫎澶辫触"),
     UPDATE_PROJECT_FAIL(10004, "椤圭洰淇敼澶辫触"),
-    NO_PROJECT(10005, "鏃犵鍚堟潯浠剁殑椤圭洰璁板綍");
+    NO_PROJECT(10005, "鏃犵鍚堟潯浠剁殑椤圭洰璁板綍"),
 
+    /**
+     * 鐏屾簤鍗曞厓
+     */
+    UNIT_ASSOCIATE_CLIENT_FAIL(20001, "鐏屾簤鍗曞厓鍒嗛厤澶辫触"),
 
-//    /**
-//     * 鐏屾簤鍗曞厓
-//     */
+    /**
+     * 杞亴缁�
+     */
+    GRPUP_ASSOCIATE_CLIENT_FAIL(30001, "杞亴缁勫叧鑱斿啘鎴峰け璐�");
+
 //    ADD_IRRIGATE_UNIT_FAIL(20001, "鍒涘缓鐏屾簤鍗曞厓澶辫触"),
 
     private final Integer code;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index c42f2a8..b607fb5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -15,7 +15,6 @@
 import com.dy.pipIrrGlobal.voSe.VoOperate;
 import com.dy.pipIrrGlobal.voSe.VoRecharge;
 import com.dy.pipIrrGlobal.voSe.VoReissueCard;
-import com.dy.pipIrrSell.cardOperate.converter.RechargeDtoMapper;
 import com.dy.pipIrrSell.cardOperate.dto.*;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
 import com.dy.pipIrrSell.cardOperate.qo.*;
@@ -65,21 +64,19 @@
     @PostMapping(path = "active", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add_active(@RequestBody @Valid DtoActiveCard po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_active(@RequestBody @Valid ActiveCard po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
+
+        Long clientId = po.getClientId();
 
         // 鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode
-        String areaCode = cardOperateSv.getAreaCodeByNum(po.getClientNum());
-        if(areaCode.trim().length() == 0) {
+        Long areaCodeL = cardOperateSv.getAreaCodeById(clientId);
+        if(areaCodeL == null) {
             return BaseResponseUtils.buildErrorMsg(SellResultCode.AREA_CODE_MISTAKE.getMessage());
         }
-
-        // p206V1_0_1鍗忚锛屽彇琛屾斂鍖哄垝鐨勫悗6浣�
-        if(po.getProtocol() != null && po.getProtocol().trim().equals("p206V1_0_1")) {
-            areaCode = areaCode.substring(6);
-        }
+        String areaCode = String.valueOf(areaCodeL);
 
         /**
          * 鏍规嵁琛屾斂鍖哄垝涓诧紙areaCode锛夊湪姘村崱琛ㄤ腑閽堝姘村崱缂栧彿锛坈ardNum锛夎繘琛屾ā绯婃煡璇�
@@ -88,34 +85,21 @@
          * cardNum涓烘柊鐨勫崱鍙�
          */
         String cardNum = Optional.ofNullable(cardOperateSv.getCardNumOfMax(areaCode)).orElse("");
-        if(po.getProtocol().trim().equals("p206V1_0_1")) {
-            if(cardNum != null && cardNum.trim().length() > 0) {
-                Integer number = Integer.parseInt(cardNum.substring(6));
-                number = number + 1;
-                if(number > 9999) {
-                    return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
-                }
-                cardNum = cardNum.substring(0, 6) + String.format("%04d", number);
-            } else {
-                cardNum = areaCode + "0001";
+        if(cardNum != null && cardNum.trim().length() > 0) {
+            Integer number = Integer.parseInt(cardNum.substring(12));
+            number = number + 1;
+            if(number > 65535) {
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
             }
-        }else {
-            if(cardNum != null && cardNum.trim().length() > 0) {
-                Integer number = Integer.parseInt(cardNum.substring(12));
-                number = number + 1;
-                if(number > 65535) {
-                    return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
-                }
-                cardNum = cardNum.substring(0, 12) + String.format("%05d", number);
-            } else {
-                cardNum = areaCode + "00001";
-            }
+            cardNum = cardNum.substring(0, 12) + String.format("%05d", number);
+        } else {
+            cardNum = areaCode + "00001";
         }
 
         /**
          * cardAddr         姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
-         * clientNum        鍐滄埛缂栧彿
          * cardCost         鍗$墖璐圭敤
+         * originalCardId   鍘熸按鍗D
          * amount           鍏呭�奸噾棰濓紝鍏呭�兼帴鍙d负杈撳叆鍙傛暟锛岃ˉ鍗℃帴鍙d负鍘熷崱閫�杩橀噾棰�
          * reissueAmount    琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤
          * paymentId        鏀粯鏂瑰紡缂栧彿
@@ -124,7 +108,6 @@
          * activeTime       寮�鍗℃椂闂�
          */
         String cardAddr = po.getCardAddr();
-        String clientNum = po.getClientNum();
         Integer cardCost = po.getCardCost();
         Long originalCardId = po.getOriginalCardId();
         Float amount = po.getAmount();
@@ -132,14 +115,6 @@
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
         Date activeTime = new Date();
-
-        /**
-         * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID
-         */
-        Long clientId = cardOperateSv.getClientIdByNum(clientNum);
-        if(clientId == null) {
-            return BaseResponseUtils.buildErrorMsg(SellResultCode.CLIENT_NUM_ERROR.getMessage());
-        }
 
         /**
          * 娣诲姞鍐滄埛鍗¤褰曪紝閫�杩橀噾棰濅綔涓哄綋鍓嶄綑棰�
@@ -166,7 +141,7 @@
         SeCardOperate seCardOperate = new SeCardOperate();
         seCardOperate.setCardId(cardId);
         seCardOperate.setClientId(clientId);
-        seCardOperate.setMoney(amount);
+        seCardOperate.setMoney(0f);
         seCardOperate.setCardCost(cardCost);
         seCardOperate.setPaymentId(paymentId);
         seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode());
@@ -182,10 +157,13 @@
          * 濡傛灉鎿嶄綔浜哄憳寮�鍗℃椂杈撳叆浜嗗厖鍊奸噾棰濓紝鍒欏紑鍗″悗璋冪敤鍏呭�煎姛鑳�
          * 琛ュ崱闄ゅ锛岃ˉ鍗$殑閫�杩橀噾棰濇槸浠庢寕澶卞崱涓浆绉昏繃鏉ョ殑锛屾病鏈夊疄闄呴噾閽变氦鏄�
          */
-        po.setCardNum(Long.parseLong(cardNum));
         if(amount != null && amount > 0 && originalCardId == null) {
-            po.setClientId(clientId);
-            DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po);
+            DtoRecharge dtoRecharge = new DtoRecharge();
+            dtoRecharge.setCardNum(Long.parseLong(cardNum));
+            dtoRecharge.setAmount(amount);
+            dtoRecharge.setPaymentId(paymentId);
+            dtoRecharge.setRemarks(remarks);
+            dtoRecharge.setOperator(operator);
             dtoRecharge.setMoney(0f);
             dtoRecharge.setGift(0f);
             dtoRecharge.setPrice(0f);
@@ -213,7 +191,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_reissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -231,6 +209,7 @@
 
         String cardAddr = po.getCardAddr();
         String clientNum = "";
+        Long clientId = 0L;
         Long cardNum = po.getCardNum();
         Long cardId = 0L;
         Integer cardCost = Optional.ofNullable(po.getCardCost()).orElse(0);
@@ -238,7 +217,6 @@
         Long paymentId = po.getPaymentId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
-        String protocol = null;
 
         // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶变笖鏈ˉ鍗$殑鍙互琛ュ崱
         if(!cardOperateSv.isLostAndUnreplaced(cardNum)) {
@@ -262,6 +240,7 @@
         }
         clientNum = map.get("clientNum").toString();
         cardId = Long.parseLong(map.get("cardId").toString());
+        clientId = Long.parseLong(map.get("clientId").toString());
 
         /**
          * 濡傛灉鏄ˉ鍗¤皟鐢ㄧ殑寮�鍗′笖杞Щ浜嗛��杩橀噾棰濓紝闇�淇敼鎸傚け鍗′綑棰濅负0
@@ -276,20 +255,16 @@
         /**
          * 娣诲姞寮�鍗¤褰曪紝閫�杩橀噾棰濆啿鍒版柊鍗′腑
          */
-        if(String.valueOf(cardNum).trim().length() == 10) {
-            protocol = "p206V1_0_1";
-        }
-        DtoActiveCard dtoActiveCard = new DtoActiveCard();
-        dtoActiveCard.setProtocol(protocol);
-        dtoActiveCard.setCardAddr(cardAddr);
-        dtoActiveCard.setClientNum(clientNum);
-        dtoActiveCard.setOriginalCardId(cardId);
-        dtoActiveCard.setCardCost(cardCost);
-        dtoActiveCard.setAmount(reissueAmount);
-        dtoActiveCard.setPaymentId(paymentId);
-        dtoActiveCard.setRemarks(remarks);
-        dtoActiveCard.setOperator(operator);
-        BaseResponse<java.lang.Boolean> baseResponse_addActive = add_active(dtoActiveCard, null);
+        ActiveCard activeCard = new ActiveCard();
+        activeCard.setCardAddr(cardAddr);
+        activeCard.setClientId(clientId);
+        activeCard.setOriginalCardId(cardId);
+        activeCard.setCardCost(cardCost);
+        activeCard.setAmount(reissueAmount);
+        activeCard.setPaymentId(paymentId);
+        activeCard.setRemarks(remarks);
+        activeCard.setOperator(operator);
+        BaseResponse<java.lang.Boolean> baseResponse_addActive = add_active(activeCard, null);
 
         if(!baseResponse_addActive.getCode().equals("0001")) {
             return BaseResponseUtils.buildErrorMsg(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
@@ -318,7 +293,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_recharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
         return cardOperateSv.addRecharge(po);
     }
@@ -334,7 +309,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_cancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -425,7 +400,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_loss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -518,7 +493,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_reversal(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -607,7 +582,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_refund(@RequestBody @Valid DtoRefund po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -691,7 +666,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_unlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -838,7 +813,7 @@
         try {
             QueryResultVo<List<VoActiveCard>> res = cardOperateSv.getActiveCards(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_ActiveCards.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ActiveCards.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -867,7 +842,7 @@
         try {
             QueryResultVo<List<VoReissueCard>> res = cardOperateSv.getReissueCards(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_ReissueCards.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ReissueCards.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -898,13 +873,13 @@
         // 楠岃瘉鎿嶄綔绫诲瀷鏄惁姝g‘
         Integer operateType = Optional.ofNullable(vo.getOperateType()).orElse(0);
         if(operateType != 3 && operateType != 6 && operateType != 7 && operateType != 8) {
-            return BaseResponseUtils.buildFail(SellResultCode.PARAMS_ERROR.getMessage());
+            return BaseResponseUtils.buildErrorMsg(SellResultCode.PARAMS_ERROR.getMessage());
         }
 
         try {
             QueryResultVo<List<VoOperate>> res = cardOperateSv.getCommonOperations(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_CANCELS.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_CANCELS.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -933,7 +908,7 @@
         try {
             Map res = Optional.ofNullable(cardOperateSv.getReceipts(vo)).orElse(new HashMap());
             if(res.size() == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_RECEIPTS.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_RECEIPTS.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ActiveCard.java
new file mode 100644
index 0000000..2cbc5a0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/ActiveCard.java
@@ -0,0 +1,64 @@
+package com.dy.pipIrrSell.cardOperate.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 11:27
+ * @LastEditTime 2024-07-11 11:27
+ * @Description 寮�鍗′紶鍏ュ璞�
+ */
+
+@Data
+public class ActiveCard {
+    public static final long serialVersionUID = 202407111129001L;
+
+    /**
+     * 姘村崱鍦板潃锛屼粎淇濆瓨锛屾棤涓氬姟
+     */
+    @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖")
+    private String cardAddr;
+
+    /**
+     * 鍐滄埛ID锛堜富閿級
+     */
+    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+     * 鍘熸寕澶卞崱ID锛岃ˉ鍗¤繃绋嬪紑鍗¢渶瑕�
+     */
+    @Schema(description = "鍘熸寕澶卞崱ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Long originalCardId;
+
+    /**
+     * 鍗$墖璐圭敤
+     */
+    @NotNull(message = "鍗$墖璐圭敤涓嶈兘涓虹┖")
+    private Integer cardCost;
+
+    /**
+     * 鍏呭�奸噾棰�
+     */
+    private Float amount;
+
+
+    /**
+     * 鏀粯鏂瑰紡缂栧彿
+     */
+    @NotNull(message = "浠樻柟寮忎笉鑳戒负绌�")
+    private Long paymentId;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
index 0a5e3a5..d17a0fa 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
@@ -10,7 +10,7 @@
  * @author ZhuBaoMin
  * @date 2024-01-18 19:44
  * @LastEditTime 2024-01-18 19:44
- * @Description
+ * @Description 寮�鍗″強琛ュ崱浼犲叆瀵硅薄
  */
 
 @Data
@@ -18,7 +18,7 @@
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "寮�鍗′紶鍏ュ璞�")
+@Schema(name = "寮�鍗″強琛ュ崱浼犲叆瀵硅薄")
 public class DtoActiveCard {
     public static final long serialVersionUID = 202401181945001L;
 
@@ -43,7 +43,7 @@
     private String clientNum;
 
     /**
-     * 鍐滄埛ID锛堜富閿級锛屼笉鏄紑鍗℃帴鍙d紶鍏ワ紝鐢卞啘鎴风紪鍙疯幏寰楋紝淇濆瓨寮�鍗¤褰曞拰鍏呭�艰褰曢兘闇�瑕�
+     * 鍐滄埛ID锛堜富閿級
      */
     @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long clientId;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java
index 84da9eb..948c855 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRecharge.java
@@ -46,7 +46,6 @@
      * 鍏呭�奸噾棰�
      */
     @Schema(description = "鍏呭�奸噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Min(value = 0, message="鍏呭�奸噾棰濅笉鑳藉皬浜�0")
     private Float amount;
 
     /**
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
index 38061cc..447a341 100644
--- 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
@@ -143,6 +143,9 @@
         String district8 = String.format("%02d", Integer.parseInt(countyNum))  + String.format("%03d", Integer.parseInt(townNum)) + String.format("%03d", Integer.parseInt(villageNum));
         // 鐢熸垚鍐滄埛缂栧彿
         String clientNum = generateClientNum(district8);
+        if(clientNum == null) {
+            return BaseResponseUtils.buildErrorMsg("鍐滄埛缂栧彿瓒呴檺");
+        }
         // 鐢熸垚12浣�5绾ц鏀垮尯鍒掔紪鐮佷覆鍙婂悕绉颁覆
         Long districtNum = Long.parseLong(provinceNum + cityNum + district8);
         String districtTitle = countryName + townName + villageName;
@@ -195,7 +198,7 @@
             Integer number = Integer.parseInt(clientNum.substring(8));
             number = number + 1;
             if(number > 9999) {
-                return "鍐滄埛缂栧彿瓒呴檺";
+                return null;
             }
             clientNum = clientNum.substring(0, 8) + String.format("%04d", number);
         } else {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
index 7c177b2..caeca6b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
@@ -193,11 +193,7 @@
     public BaseResponse<Map> getSummaries(QoSummary vo){
         try {
             Map res = generalSv.getSummaries(vo);
-            if(res.size() > 0) {
-                return BaseResponseUtils.buildSuccess(res);
-            }else {
-                return BaseResponseUtils.buildFail(SellResultCode.No_TRADE_SUMMARIES.getMessage());
-            }
+            return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java
index 313d0db..765888d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/qo/QoSummary.java
@@ -2,6 +2,8 @@
 
 import com.dy.common.webUtil.QueryConditionVo;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.*;
 
 /**
@@ -20,11 +22,14 @@
 @Schema(name = "浜ゆ槗姹囨�绘煡璇㈡潯浠�")
 public class QoSummary extends QueryConditionVo {
     @Schema(description = "鏌ヨ璧峰鏃ユ湡")
+    @NotBlank(message = "鏌ヨ璧峰鏃ユ湡涓嶈兘涓虹┖")
     public String timeStart;
 
     @Schema(description = "鏌ヨ鎴鏃ユ湡")
+    @NotBlank(message = "鏌ヨ鎴鏃ユ湡涓嶈兘涓虹┖")
     public String timeStop;
 
     @Schema(description = "鏀堕摱鍛業D")
+    @NotNull(message = "鏀堕摱鍛樹笉鑳戒负绌�")
     public Long cashierId;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardCtrl.java
index 8c2b4a6..c695e7c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/VirtualCardCtrl.java
@@ -5,7 +5,6 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
-import com.dy.pipIrrGlobal.voPr.VoController;
 import com.dy.pipIrrGlobal.voSe.VoVcRecharge;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
 import com.dy.pipIrrSell.result.SellResultCode;
@@ -101,7 +100,7 @@
         if(vcNum != null && vcNum.trim().length() > 0) {
             Integer number = Integer.parseInt(vcNum.substring(12));
             number = number + 1;
-            if(number > 99999) {
+            if(number > 65535) {
                 return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
             }
             vcNum = vcNum.substring(0, 12) + String.format("%05d", number);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
index 7a7f9c4..6ad9ae6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -113,7 +113,7 @@
 
         // 铏氭嫙鍗$姸鎬佷负浣跨敤涓紝涓斾笉鏄己鍒跺紑闃�鏃舵彁绀�
         if (vc.getInUse() == 1 && !forceOpen) {
-            return BaseResponseUtils.buildErrorMsg(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
+            return BaseResponseUtils.buildCodeMsg(WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getCode(), WechatResultCode.IN_USE_VC_CANNOT_OPEN_VALVE.getMessage());
         }
 
         // 鑾峰彇姘翠环
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoAudit.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoAudit.java
new file mode 100644
index 0000000..d7694e2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoAudit.java
@@ -0,0 +1,35 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:38
+ * @LastEditTime 2024-07-11 15:38
+ * @Description
+ */
+
+@Data
+public class DtoAudit {
+    public static final long serialVersionUID = 202407111539001L;
+
+    /**
+     * 铏氭嫙鍗¢��娆綢D
+     */
+    @NotNull(message = "铏氭嫙鍗¢��娆綢D涓嶈兘涓虹┖")
+    private Long refundId;
+
+    /**
+     * 瀹℃牳浜篒D
+     */
+    @NotNull(message = "瀹℃牳ID涓嶈兘涓虹┖")
+    private Long auditor;
+
+    /**
+     * 瀹℃牳澶囨敞
+     */
+    @Length(max = 200)
+    private String remarks;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRefund.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRefund.java
new file mode 100644
index 0000000..e3fdaba
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRefund.java
@@ -0,0 +1,30 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Positive;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:39
+ * @LastEditTime 2024-07-11 15:39
+ * @Description
+ */
+
+@Data
+public class DtoRefund {
+    public static final long serialVersionUID = 202407111540001L;
+
+    /**
+     * 铏氭嫙鍗$紪鍙�
+     */
+    @NotNull(message = "铏氭嫙鍗$紪鍙蜂笉鑳戒负绌�")
+    private Long virtualId;
+
+    /**
+     * 閫�娆鹃噾棰�
+     */
+    @NotNull(message = "閫�娆鹃噾棰濅笉鑳戒负绌�")
+    @Positive(message = "鍏呭�奸噾棰濆繀椤讳负澶т簬0鐨勬暣鏁�")
+    private Integer refundAmount;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRegist.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRegist.java
new file mode 100644
index 0000000..e6ad96f
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoRegist.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:40
+ * @LastEditTime 2024-07-11 15:40
+ * @Description
+ */
+
+@Data
+public class DtoRegist {
+    public static final long serialVersionUID = 202407111541001L;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @NotNull(message = "鍐滄埛ID涓嶈兘涓虹┖")
+    private Long clientId;
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java
new file mode 100644
index 0000000..5956583
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java
@@ -0,0 +1,15 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:41
+ * @LastEditTime 2024-07-11 15:41
+ * @Description
+ */
+
+@Data
+public class DtoVcRecharge extends QueryConditionVo {
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java
new file mode 100644
index 0000000..68086f0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVirtualCard.java
@@ -0,0 +1,41 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:43
+ * @LastEditTime 2024-07-11 15:43
+ * @Description
+ */
+
+@Data
+public class DtoVirtualCard {
+    public static final long serialVersionUID = 202407111543001L;
+
+    /**
+     * 璁㈠崟鍙�
+     */
+    @NotBlank(message = "璁㈠崟鍙蜂笉鑳戒负绌�")
+    private String orderNumber;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @NotNull(message = "鍐滄埛ID涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+     * 铏氭嫙鍗D
+     */
+    @NotNull(message = "铏氭嫙鍗D涓嶈兘涓虹┖")
+    private Long virtualId;
+
+    /**
+     * 鍏呭�奸噾棰�
+     */
+    @NotNull(message = "鍏呭�奸噾棰濅笉鑳戒负绌�")
+    private Integer rechargeAmount;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java
new file mode 100644
index 0000000..7a4cc72
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrWechat.virtualCard.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:45
+ * @LastEditTime 2024-07-11 15:45
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum LastOperateENUM {
+    OPEN_ACCOUNT((byte)1, "寮�鎴�"),
+    RECHARGE((byte)2, "鍏呭��"),
+    CONSUME((byte)3, "娑堣垂"),
+    APPLY_REFUND((byte)4, "鐢宠閫�娆�"),
+    AUDIT_REFUND((byte)5, "閫�娆惧鏍�"),
+    REFUND((byte)6, "閫�娆�"),
+    OPEN_VALVE((byte)7, "寮�闃�"),
+    CLOSE_VALVE((byte)8, "鍏抽榾");
+
+    private final Byte code;
+    private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/OrderStateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/OrderStateENUM.java
new file mode 100644
index 0000000..c87a704
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/OrderStateENUM.java
@@ -0,0 +1,21 @@
+package com.dy.pipIrrWechat.virtualCard.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:46
+ * @LastEditTime 2024-07-11 15:46
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum OrderStateENUM {
+    NON_PAYMENT((byte)1, "鏈敮浠�"),
+    PAID((byte)2, "宸叉敮浠�");
+
+    private final Byte code;
+    private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUM.java
new file mode 100644
index 0000000..96b835e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundItemStateENUM.java
@@ -0,0 +1,21 @@
+package com.dy.pipIrrWechat.virtualCard.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:47
+ * @LastEditTime 2024-07-11 15:47
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum RefundItemStateENUM {
+    NO_REFUND((byte)1, "鏈��娆�"),
+    REFUNDED((byte)2, "宸查��娆�");
+
+    private final Byte code;
+    private final String message;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundStateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundStateENUM.java
new file mode 100644
index 0000000..eb74301
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/RefundStateENUM.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrWechat.virtualCard.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:48
+ * @LastEditTime 2024-07-11 15:48
+ * @Description
+ */
+
+@Getter
+@AllArgsConstructor
+public enum RefundStateENUM {
+    TO_AUDIT((byte)1, "寰呭鏍�"),
+    TO_REFUND((byte)2, "寰呴��娆�"),
+    REFUNDED((byte)3, "宸查��娆�");
+
+    private final Byte code;
+    private final String message;
+}

--
Gitblit v1.8.0