From 1d453f4b38e77142c04d939f83a63aa22a7ac8a2 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 30 Jul 2025 16:21:56 +0800 Subject: [PATCH] fix some bug --- src/main/java/a8k/app/constant/AppVersion.java | 2 +- .../java/a8k/app/service/data/FileMgrService.java | 6 +-- .../a8k/app/service/os/OSDeviceInfoMgrService.java | 6 +-- src/main/java/a8k/app/utils/ZFileUtils.java | 55 ++++++++++++++++++++++ .../VirtualStateGenerateModeSettingPage.java | 28 +++++++++++ 5 files changed, 90 insertions(+), 7 deletions(-) create mode 100644 src/main/java/a8k/app/utils/ZFileUtils.java diff --git a/src/main/java/a8k/app/constant/AppVersion.java b/src/main/java/a8k/app/constant/AppVersion.java index 86b450d..dd5466f 100644 --- a/src/main/java/a8k/app/constant/AppVersion.java +++ b/src/main/java/a8k/app/constant/AppVersion.java @@ -1,5 +1,5 @@ package a8k.app.constant; public class AppVersion { - public static final String APP_VERSION = "B80.CN.01.00.07"; + public static final String APP_VERSION = "B80.CN.01.00.08"; } diff --git a/src/main/java/a8k/app/service/data/FileMgrService.java b/src/main/java/a8k/app/service/data/FileMgrService.java index c593d85..6cb9d4f 100644 --- a/src/main/java/a8k/app/service/data/FileMgrService.java +++ b/src/main/java/a8k/app/service/data/FileMgrService.java @@ -71,9 +71,9 @@ public class FileMgrService { public String storageTmpFile(String name, String content) throws IOException { File dir = new File(FilePathConstant.FILE_OPT_REPORT_PATH); dir.mkdirs(); - String filePath = String.format("%s/%s.json", FilePathConstant.FILE_TMP_STORAGE_PATH, name); - File file = new File(filePath); - FileWriter writer = new FileWriter(file.getAbsolutePath()); + String filePath = String.format("%s/%s.json", FilePathConstant.FILE_TMP_STORAGE_PATH, name); + File file = new File(filePath); + FileWriter writer = new FileWriter(file.getAbsolutePath()); writer.write(content); writer.close(); return StorageControler.getDoloadPath(filePath); diff --git a/src/main/java/a8k/app/service/os/OSDeviceInfoMgrService.java b/src/main/java/a8k/app/service/os/OSDeviceInfoMgrService.java index 9974c4b..1e453b4 100644 --- a/src/main/java/a8k/app/service/os/OSDeviceInfoMgrService.java +++ b/src/main/java/a8k/app/service/os/OSDeviceInfoMgrService.java @@ -4,7 +4,7 @@ import a8k.OS; import a8k.app.iflytophald.type.protocol.A8kEcode; import a8k.app.service.statemgr.GStateMgrService; import a8k.app.type.exception.AppException; -import cn.hutool.core.io.FileUtil; +import a8k.app.utils.ZFileUtils; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -79,7 +79,7 @@ public class OSDeviceInfoMgrService { } try { - String val = FileUtil.readUtf8String(path); + String val = ZFileUtils.readUtf8String(path); if (val == null || val.isEmpty()) { return defaultVal; } @@ -98,7 +98,7 @@ public class OSDeviceInfoMgrService { } try { - FileUtil.writeUtf8String(val, path); + ZFileUtils.writeUtf8String(val, path); if (updateStateFn != null) updateStateFn.update(val); } catch (Exception e) { diff --git a/src/main/java/a8k/app/utils/ZFileUtils.java b/src/main/java/a8k/app/utils/ZFileUtils.java new file mode 100644 index 0000000..1ffd17f --- /dev/null +++ b/src/main/java/a8k/app/utils/ZFileUtils.java @@ -0,0 +1,55 @@ +package a8k.app.utils; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; + +public class ZFileUtils { + static public String getDirPath(String fullPath) { + File file = new File(fullPath); + if (file.isDirectory()) { + return fullPath; + } else { + return file.getParent(); + } + } + + static public void forceCreateDir(String path) throws IOException { + String dirPath = getDirPath(path); + File dir = new File(dirPath); + if (!dir.exists()) { + boolean suc = dir.mkdirs(); + if (!suc) { + throw new IOException("Failed to create directory: " + path); + } + } + } + + static public void writeUtf8String(String val, String path) throws IOException { + forceCreateDir(path); + File file = new File(path); + try (FileWriter writer = new FileWriter(file.getAbsolutePath())) { + writer.write(val); + } + } + + + static public String readUtf8String(String path) throws IOException { + File file = new File(path); + return Files.readString(Path.of(file.getAbsolutePath())); + } + + public static void main(String[] args) { + try { + String filepath = "runenv/123/testFile.txt"; + writeUtf8String("Hello, World!", filepath); + String content = readUtf8String(filepath); + System.out.println("File content: " + content); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/a8k/extui/page/extapp/VirtualStateGenerateModeSettingPage.java b/src/main/java/a8k/extui/page/extapp/VirtualStateGenerateModeSettingPage.java index f920135..17cf835 100644 --- a/src/main/java/a8k/extui/page/extapp/VirtualStateGenerateModeSettingPage.java +++ b/src/main/java/a8k/extui/page/extapp/VirtualStateGenerateModeSettingPage.java @@ -1,9 +1,16 @@ package a8k.extui.page.extapp; +import a8k.app.dao.type.db.ProjExtInfoCard; +import a8k.app.service.background.AppEventBusService; +import a8k.app.service.statemgr.GStateMgrService; import a8k.app.service.virtualstate.DeviceVirtualStateMgrService; import a8k.app.service.virtualstate.VirtualStateMode; import a8k.app.type.a8k.state.EmergencyTubePos; import a8k.app.type.a8k.state.enumtype.TubeState; +import a8k.app.type.appevent.AppIDCardMountEvent; +import a8k.app.type.appevent.AppIDCardUnmountEvent; +import a8k.app.type.exception.AppException; +import a8k.extui.factory.ProjExtInfoCardFactory; import a8k.extui.mgr.ExtApiPageMgr; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; @@ -16,6 +23,8 @@ import org.springframework.stereotype.Component; public class VirtualStateGenerateModeSettingPage { private final ExtApiPageMgr extApiPageMgr; private final DeviceVirtualStateMgrService deviceVirtualStateMgrService; + private final AppEventBusService eventBus; + private final GStateMgrService gStateMgrService; public void changeVirtualStateMode(VirtualStateMode mode) { deviceVirtualStateMgrService.changeVirtualStateMode(mode); @@ -25,6 +34,19 @@ public class VirtualStateGenerateModeSettingPage { deviceVirtualStateMgrService.changeEmergencyTubeState(tubeState); } + public void insertVirtualIdCard(Integer projId, String lotId) throws AppException { + ProjExtInfoCard newInfoCard = ProjExtInfoCardFactory.buildProjExtInfoCard(projId, lotId); + eventBus.pushEvent(new AppIDCardMountEvent(newInfoCard)); + } + + public void removeVirtualIdCard() { + eventBus.pushEvent(new AppIDCardUnmountEvent()); + } + + public void setEmergencyKeyState(Boolean state) throws AppException { + gStateMgrService.updateEmergencyStopFlag(state); + } + @PostConstruct public void init() { var page = extApiPageMgr.newPage(this); @@ -33,6 +55,12 @@ public class VirtualStateGenerateModeSettingPage { .setParamVal("mode", deviceVirtualStateMgrService::getMode); page.addFunction("修改急诊试管状态", this::changeEmergencyTubeState) .setParamVal("tubeState", deviceVirtualStateMgrService::getEmergencyTubeState); + page.addFunction("插入ID卡", this::insertVirtualIdCard) + .setParamVal("projId", () -> 1) + .setParamVal("lotId", () -> "CA00000"); + page.addFunction("移除ID卡", this::removeVirtualIdCard); + page.addFunction("设置急停按键状态", this::setEmergencyKeyState) + .setParamVal("state", () -> gStateMgrService.getGState().emergencyKeyTriggered); extApiPageMgr.addPage(page);