From 03b0fb0ba2de86bcfff277778826547c0e37a93f Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期四, 20 十一月 2025 23:52:51 +0800
Subject: [PATCH] 优化修改
---
src/chushihua/SlotManager.java | 128 +++++++++++++++++++++++++++++-------------
1 files changed, 89 insertions(+), 39 deletions(-)
diff --git a/src/chushihua/SlotManager.java b/src/chushihua/SlotManager.java
index 00fbd7c..2ff8c95 100644
--- a/src/chushihua/SlotManager.java
+++ b/src/chushihua/SlotManager.java
@@ -204,8 +204,8 @@
* 鎵撳嵃鎵�鏈夊崱妲界殑姒傝淇℃伅 - 浼樺寲鐗堟湰
*/
public void printAllSlotsSummary() {
- System.out.println("=== 鍗℃Ы姒傝淇℃伅 ===");
- System.out.println("鎬诲崱妲芥暟: " + TOTAL_SLOTS);
+ //System.out.println("=== 鍗℃Ы姒傝淇℃伅 ===");
+ //System.out.println("鎬诲崱妲芥暟: " + TOTAL_SLOTS);
for (Fkj slot : slotArray) {
System.out.printf("鍗℃Ы %s: 鍗$紪鍙�=%s, 鏈夊崱=%s, 鐘舵��=%s, 鏁呴殰=%s%n",
@@ -223,8 +223,8 @@
public void printSlotDetail(int slotNumber) {
Fkj slot = getSlotInfo(slotNumber);
if (slot != null) {
- System.out.println("=== 鍗℃Ы " + slotNumber + " 璇︾粏淇℃伅 ===");
- System.out.println(slot.toString());
+ //System.out.println("=== 鍗℃Ы " + slotNumber + " 璇︾粏淇℃伅 ===");
+ //System.out.println(slot.toString());
}
}
@@ -273,15 +273,19 @@
* 鏂板锛氭牴鎹覆鍙e崗璁В鏋愬櫒鐨勭姸鎬佹洿鏂版潵鏇存柊鍗℃Ы璇︾粏淇℃伅 - 浼樺寲鐗堟湰
*/
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;
}
@@ -407,7 +415,7 @@
slot.setFault(UNKNOWN_VALUE);
slot.setUpdateTime(UNKNOWN_VALUE);
}
- System.out.println("鎵�鏈夊崱妲界姸鎬佸凡閲嶇疆涓烘湭鐭�");
+ //System.out.println("鎵�鏈夊崱妲界姸鎬佸凡閲嶇疆涓烘湭鐭�");
}
@@ -445,22 +453,22 @@
* 鑾峰彇缂撳瓨缁熻淇℃伅锛堢敤浜庣洃鎺э級
*/
public static void printCacheStats() {
- System.out.println("鐘舵�佺紦瀛樺ぇ灏�: " + statusTextCache.size());
- System.out.println("鏁呴殰缂撳瓨澶у皬: " + faultTextCache.size());
+ //System.out.println("鐘舵�佺紦瀛樺ぇ灏�: " + statusTextCache.size());
+ //System.out.println("鏁呴殰缂撳瓨澶у皬: " + faultTextCache.size());
}
-
+
/**
* 缁熻鍏呯數涓殑鍗℃Ы鏁伴噺
* @return 鍏呯數涓殑鍗℃Ы鏁伴噺瀛楃涓�
*/
public static String getChargingCount() {
- int count = 0;
- for (Fkj slot : slotArray) {
- if ("2".equals(slot.getWorkStatus())) {
- count++;
- }
- }
- return String.valueOf(count);
+ int count = 0;
+ for (Fkj slot : slotArray) {
+ if ("2".equals(slot.getWorkStatus())) {
+ count++;
+ }
+ }
+ return String.valueOf(count);
}
/**
@@ -468,13 +476,13 @@
* @return 宸插厖婊$殑鍗℃Ы鏁伴噺瀛楃涓�
*/
public static String getFullyChargedCount() {
- int count = 0;
- for (Fkj slot : slotArray) {
- if ("3".equals(slot.getWorkStatus())) {
- count++;
- }
- }
- return String.valueOf(count);
+ int count = 0;
+ for (Fkj slot : slotArray) {
+ if ("3".equals(slot.getWorkStatus())) {
+ count++;
+ }
+ }
+ return String.valueOf(count);
}
/**
@@ -482,13 +490,13 @@
* @return 鏁呴殰鐨勫崱妲芥暟閲忓瓧绗︿覆
*/
public static String getFaultCount() {
- int count = 0;
- for (Fkj slot : slotArray) {
- if ("4".equals(slot.getWorkStatus())) {
- count++;
- }
- }
- return String.valueOf(count);
+ int count = 0;
+ for (Fkj slot : slotArray) {
+ if ("4".equals(slot.getWorkStatus())) {
+ count++;
+ }
+ }
+ return String.valueOf(count);
}
/**
@@ -496,12 +504,54 @@
* @return 閫氫俊瓒呮椂鐨勫崱妲芥暟閲忓瓧绗︿覆
*/
public static String getCommTimeoutCount() {
- int count = 0;
- for (Fkj slot : slotArray) {
- if ("6".equals(slot.getWorkStatus())) {
- count++;
- }
+ int count = 0;
+ for (Fkj slot : slotArray) {
+ if ("6".equals(slot.getWorkStatus())) {
+ count++;
+ }
+ }
+ 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, // 鐖剁獥鍙o紝鍙互涓簄ull
+ 5, // 鏄剧ず3绉�
+ "杩樺崱鎴愬姛锛屾劅璋㈡偍鐨勪娇鐢�",
+ "" // 闊抽鏂囦欢锛屽彲浠ヤ负绌�
+ );
+ });
+ //System.out.println("鍗℃Ы " + slotNumber + " 杩樺崱鎴愬姛锛屽崱鍙蜂粠 " + oldCardNumber + " 鍙樹负 " + newCardNumber);
+ }
+ }
+
+ /**
+ * 闈欐�佹柟娉曪細鏍规嵁鍗℃Ы缂栧彿鏀瑰彉鏄惁鏈夊崱鐨勫睘鎬у�间负0锛堟棤鍗★級
+ * @param slotNumber 鍗℃Ы缂栧彿锛堜粠1寮�濮嬶級
+ * @param caozuo 鎿嶄綔绫诲瀷锛�1琛ㄧず绠$悊鍛橈紝0琛ㄧず绯荤粺
+ * @return 淇敼鎴愬姛杩斿洖true锛屽惁鍒欒繑鍥瀎alse
+ */
+ public static boolean changgehaska(int slotNumber, String caozuo) {
+ if (!isValidSlotNumber(slotNumber)) {
+ return false;
}
- return String.valueOf(count);
+ Fkj slot = slotArray[slotNumber - 1];
+ slot.setHasCard("0");
+ slot.setCardNumber("0000");
+ slot.setUpdateTime(getCurrentTime());
+
+ // 璁板綍鍙栧崱鏃ュ織
+ String operator = "1".equals(caozuo) ? "绠$悊鍛�" : "绯荤粺";
+ String logMessage = String.format("鍙栧崱鎿嶄綔锛氬崱妲�%d琚�%s鍙栧崱", slotNumber, operator);
+ xitongshezhi.Charulog.logOperation(logMessage);
+
+ return true;
}
}
\ No newline at end of file
--
Gitblit v1.9.3