张世豪
昨天 8f8eed75beb5bb9b66f2a87de856f2dbf11e6ffe
src/chushihua/SlotManager.java
@@ -273,15 +273,19 @@
    * 新增:根据串口协议解析器的状态更新来更新卡槽详细信息 - 优化版本
    */
   public static boolean gengxinshuxingzhi(          
         int slotNumber, String cardNumber, String hascard, String workStatus,String voltage, String current,String falt ) {
         int slotNumber, String cardNumber, String hascard, String workStatus,
         String voltage, String current, String falt) {
      if (!isValidSlotNumber(slotNumber) || cardNumber.equals("0000")) {
      if (!isValidSlotNumber(slotNumber)) {
         return false;
      }
      
      Fkj slot = slotArray[slotNumber-1];
      // 获取更新前的卡号用于比较
      String oldCardNumber = slot.getCardNumber();
      // 更新卡槽属性
      slot.setCardNumber(cardNumber);
      slot.setHasCard(hascard);
      slot.setWorkStatus(workStatus);
@@ -290,6 +294,10 @@
      slot.setFault(falt);        
      // 更新时间
      slot.setUpdateTime(getCurrentTime());
      // 检测卡号变化并弹出提示
      checkCardInsertionAndShowDialog(slotNumber, oldCardNumber, cardNumber);
      return true;
   }
@@ -504,4 +512,23 @@
       }
       return String.valueOf(count);
   }
   /**
    * 新增:检测卡号变化并弹出还卡成功提示
    */
   private static void checkCardInsertionAndShowDialog(int slotNumber, String oldCardNumber, String newCardNumber) {
      // 检查卡号是否从"0000"变为非"0000"
      if ("0000".equals(oldCardNumber) && !"0000".equals(newCardNumber)) {
         // 在事件分发线程中显示对话框
         javax.swing.SwingUtilities.invokeLater(() -> {
            xitongshezhi.Dingshidialog.showTimedDialog(
                  null, // 父窗口,可以为null
                  5,    // 显示3秒
                  "还卡成功,感谢您的使用",
                  ""    // 音频文件,可以为空
                  );
         });
         System.out.println("卡槽 " + slotNumber + " 还卡成功,卡号从 " + oldCardNumber + " 变为 " + newCardNumber);
      }
   }
}