zuoxiao
6 天以前 8297013f990a5440fa8bebb8c0eb9fb0f6af4862
feat(card): 添加管理卡状态枚举并更新相关逻辑

- 新增 ManagementCardStateENUM 枚举,用于管理卡状态
- 在 SeManagementCard 模型中添加 state 字段,表示卡片状态- 更新 CardSv 服务,支持管理卡状态的设置
- 修改 SeClientCardMapper.xml,增加对管理卡状态的查询条件
3个文件已修改
1个文件已添加
103 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeManagementCard.java
@@ -20,7 +20,7 @@
 * @Description 充值机用管理卡
 */
@TableName(value="se_management_card", autoResultMap = true)
@TableName(value = "se_management_card", autoResultMap = true)
@Data
@Builder
@ToString
@@ -30,76 +30,88 @@
    public static final long serialVersionUID = 202506240651001L;
    /**
    * 主键
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
     * 主键
     */
    @JSONField(serializeUsing = ObjectWriterImplToString.class)
    @TableId(type = IdType.INPUT)
    private Long id;
    /**
    * 通讯协议
    */
     * 通讯协议
     */
    @NotBlank(message = "通讯协议不能为空")
    private String protocol;
    /**
    * 卡片地址
    */
     * 卡片地址
     */
    @NotBlank(message = "卡片地址不能为空")
    private String cardAddr;
    /**
    * 识别码
    */
     * 识别码
     */
    @NotBlank(message = "识别码不能为空")
    private String securityCode;
    /**
    * 卡片类型;2-设置区域表号卡,3-取数卡,4-检查卡,5-测试卡,6-清零卡,7-IP设置卡,8-域名设置卡,9-GPS卡,10-时间配置卡
    */
     * 卡片类型;2-设置区域表号卡,3-取数卡,4-检查卡,5-测试卡,6-清零卡,7-IP设置卡,8-域名设置卡,9-GPS卡,10-时间配置卡
     */
    @NotNull(message = "卡片类型不能为空")
    private Byte cardType;
    /**
    * 开卡时间
    */
     * 开卡时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "开卡时间不能为空")
    private Date createTime;
    /**
    * 订单号
    */
     * 订单号
     */
    private String orderNo;
    /**
    * 5级行政区划编码
    */
     * 5级行政区划编码
     */
    private String districtCode;
    /**
    * 项目编码
    */
     * 项目编码
     */
    private Integer projectNo;
    /**
    * IP地址
    */
     * IP地址
     */
    private String ip;
    /**
    * 域名
    */
     * 域名
     */
    private String domain;
    /**
    * 开关阀时间
    */
     * 开关阀时间
     */
    private Integer openClostTime;
    /**
    * 备注信息
    */
     * 备注信息
     */
    private String remarks;
    /**
     * 注销时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelDt;
    /**
     * 卡片状态;1-正常,2-已注销,3-已挂失
     */
    @NotNull(message = "卡片状态不能为空")
    private Byte state;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -868,9 +868,10 @@
  <!--检查卡地址是否已存在(管理卡表 + 农户水卡表)-->
  <select id="checkCardAddrExists" resultType="java.lang.Long">
    SELECT COUNT(*) AS totalCount FROM (
      -- 检查管理卡表中的所有记录
      -- 检查管理卡表中正常(1)和挂失(3)状态的记录
      SELECT card_addr FROM se_management_card 
      WHERE card_addr = #{cardAddr}
        AND state IN (1, 3)
      
      UNION ALL
      
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -14,6 +14,7 @@
import com.dy.pipIrrTerminal.card.qo.QoLostCards;
import com.dy.pipIrrTerminal.card.enums.CardStateENUM;
import com.dy.pipIrrTerminal.card.enums.LastOperateENUM;
import com.dy.pipIrrTerminal.card.enums.ManagementCardStateENUM;
import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM;
import com.dy.pipIrrTerminal.card.enums.RechargeTypeENUM;
import lombok.extern.slf4j.Slf4j;
@@ -22,6 +23,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.dy.common.util.IDLongGenerator;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -57,6 +59,9 @@
    @Autowired
    private SeManagementCardMapper seManagementCardMapper;
    @Autowired
    private IDLongGenerator idLongGenerator;
    @Value("${project.projectNo}")
    private Integer projectNo;
@@ -1306,8 +1311,8 @@
            // 参考termActiveCard逻辑:生成订单号
            String orderNo = generateOrderNo();
            // 参考termActiveCard逻辑:生成唯一ID,使用时间戳
            Long id = System.currentTimeMillis();
            // 使用IDLongGenerator生成唯一ID
            Long id = idLongGenerator.generate();
            Date createTime = new Date();
            // 构建管理卡对象
@@ -1325,6 +1330,7 @@
                    .domain(dto.getDomain())
                    .openClostTime(dto.getOpenClostTime())
                    .remarks(dto.getRemarks())
                    .state(ManagementCardStateENUM.NORMAL.getCode()) // 默认状态为正常
                    .build();
            // 插入数据库
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/enums/ManagementCardStateENUM.java
New file
@@ -0,0 +1,22 @@
package com.dy.pipIrrTerminal.card.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
 * @author ZhuBaoMin
 * @date 2025-01-20
 * @LastEditTime 2025-01-20
 * @Description 管理卡状态枚举
 */
@Getter
@AllArgsConstructor
public enum ManagementCardStateENUM {
    NORMAL((byte) 1, "正常"),
    CANCELLED((byte) 2, "已注销"),
    LOSS((byte) 3, "已挂失");
    private final Byte code;
    private final String message;
}