From 7acfc864d11de1fc41cabc2a5d4fad3894c2e5b0 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期五, 28 十一月 2025 11:27:08 +0800
Subject: [PATCH] 增加发卡不成功再次发卡的逻辑

---
 src/home/CardMachineUI.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/src/home/CardMachineUI.java b/src/home/CardMachineUI.java
index 4479e23..6532501 100644
--- a/src/home/CardMachineUI.java
+++ b/src/home/CardMachineUI.java
@@ -181,7 +181,7 @@
     }
 
 	private void initializeUI() {
-		setTitle("鏅鸿兘浜鸿劯鍙戝崱鏈虹鐞嗙郴缁�");
+		setTitle("鍙戝崱鏈烘帶鍒惰蒋浠禫1.0");
 		setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
 		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 		setLocationRelativeTo(null);
@@ -481,14 +481,22 @@
 	        final int slotId = i;
 	        SlotStatus status = getSlotStatusFromManager(slotId);
 	        
-	        // 娣诲姞璋冭瘯淇℃伅
+	        // 鑾峰彇鍗℃Ы淇℃伅
 	        Fkj slotInfo = slotManager.getSlotInfo(slotId);
-	        if (slotInfo != null) {
-	        } else {
-	            System.err.println("鍗℃Ы " + slotId + " - 鑾峰彇淇℃伅澶辫触");
+	        String cardNumber = "鏃犲崱";
+	        if (slotInfo != null && slotInfo.getCardNumber() != null) {
+	            String cardNum = slotInfo.getCardNumber();
+	            // 鍒ゆ柇鍗″彿鏄惁鏈夋晥锛堜笉鏄�"-1"鎴�"0000"锛�
+	            if (!"-1".equals(cardNum) && !"0000".equals(cardNum)) {
+	                cardNumber = cardNum;
+	            }
 	        }
 
-	        JButton slotButton = new JButton(String.valueOf(slotId));
+	        // 鍒涘缓鍖呭惈鍗℃Ы缂栧彿鍜屽崱鍙风殑HTML鏂囨湰
+	        String buttonText = String.format("<html><div style='text-align: center;'>%d<br/><span style='font-size: 10px;'>%s</span></div></html>", 
+	                                         slotId, cardNumber);
+	        
+	        JButton slotButton = new JButton(buttonText);
 	        slotButton.setBackground(status.getColor());
 	        slotButton.setForeground(Color.WHITE);
 	        slotButton.setFont(new Font("Microsoft YaHei", Font.BOLD, 14));
@@ -701,10 +709,10 @@
 	public boolean performCardPickup(int slotId) {
 		try {
 			// 璋冪敤OpenDoor鐢熸垚寮�闂ㄦ寚浠�
-			String command = OpenDoor.openOneDoor(slotId, OpenDoor.TYPE_ISSUE_CARD);
+//			String command = OpenDoor.openOneDoor(slotId, OpenDoor.TYPE_ISSUE_CARD);
 
 			// 浣跨敤Sendmsg鍙戦�佹寚浠ゅ埌涓插彛
-			boolean sendResult = Sendmsg.sendMessage(command);
+			boolean sendResult = Sendmsg.opendoorzhiling(slotId, 2);
 
 			if (sendResult) {				
 				return true;
@@ -847,6 +855,7 @@
 	        ensureSerialParserRunning(); // 纭繚涓插彛瑙f瀽鍣ㄨ繍琛�
 	        updateCardSlotsDisplay();
 	        updateStatistics();
+	        SlotManager.pollAndResendOpenCommand(1);//澧炲姞鍙戝崱涓嶆垚鍔熷啀娆″彂鍗�
 	    });
 	    uiUpdateTimer.start();
 	}

--
Gitblit v1.10.0