diff --git a/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java b/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java index 6566bf0..f12ffa2 100644 --- a/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java +++ b/src/main/java/a8k/app/controler/api/v1/app/setting/DeviceSettingControler.java @@ -1,7 +1,7 @@ package a8k.app.controler.api.v1.app.setting; import a8k.app.a8ktype.ui.ApiRet; -import a8k.app.dao.db.type.AppSetting; +import a8k.app.dao.db.type.DeviceSetting; import a8k.app.dao.db.type.appsetting.settingenum.*; import a8k.app.service.setting.AppSettingsMgrService; import a8k.app.service.statemgr.GStateMgrService; @@ -35,27 +35,19 @@ public class DeviceSettingControler { // EXT FUNC // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - public static class DeviceSetting { - public LanguageType language; - public Boolean autoPrint; - public Boolean autoLogout; - public Integer temperature; - public Boolean DHCP; - public String localIp; - } + // public static class DeviceSetting { + // public LanguageType language; + // public Boolean autoPrint; + // public Integer autoLogoutTimeout; + // public Integer temperature; + // public Boolean DHCP; + // public String localIp; + // } @Operation(summary = "获取系统设置") @PostMapping("/getSetting") public ApiRet getAppSettings() { - DeviceSetting setting = new DeviceSetting(); - AppSetting appSetting = appSettingsMgrService.getAppSettings(); - setting.language = appSetting.language; - setting.autoPrint = appSetting.autoPrint; - setting.autoLogout = appSetting.autoLogout; - setting.temperature = appSetting.temperature; - setting.DHCP = appSetting.DHCP; - setting.localIp = appSetting.localIp; - return ApiRet.success(setting); + return ApiRet.success(appSettingsMgrService.getDeviceSetting()); } @@ -76,9 +68,9 @@ public class DeviceSettingControler { @Operation(summary = "设置自动登出") - @PostMapping("/setAutoLogout") - public ApiRet setAutoLogout(Boolean val) { - appSettingsMgrService.setAutoLogout(val); + @PostMapping("/setAutoLogoutTimeout") + public ApiRet setAutoLogoutTimeout(Integer val) { + appSettingsMgrService.setAutoLogoutTimeout(val); return ApiRet.success(); } diff --git a/src/main/java/a8k/app/controler/api/v1/app/setting/LISSettingControler.java b/src/main/java/a8k/app/controler/api/v1/app/setting/LISSettingControler.java index 94d4fc8..8c91127 100644 --- a/src/main/java/a8k/app/controler/api/v1/app/setting/LISSettingControler.java +++ b/src/main/java/a8k/app/controler/api/v1/app/setting/LISSettingControler.java @@ -1,7 +1,7 @@ package a8k.app.controler.api.v1.app.setting; +import a8k.app.dao.db.type.LISSetting; import a8k.app.service.setting.AppSettingsMgrService; -import a8k.app.dao.db.type.AppSetting; import a8k.app.dao.db.type.appsetting.settingenum.*; import a8k.app.a8ktype.ui.ApiRet; import a8k.app.service.statemgr.GStateMgrService; @@ -31,31 +31,22 @@ public class LISSettingControler { // EXT FUNC // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - public static class LISSetting { - public LISTypeEnum LISType = LISTypeEnum.SINGLE_TRACK; - public LISProtocolEnum LISProtocol = LISProtocolEnum.Boditech; - public LISIFType LIFIf = LISIFType.NETWORK; - public Boolean LISAutoExport = true; - public LISSerialBaudrateType LISSerialBaudrate = LISSerialBaudrateType.B9600; - public String LISNetIp = "127.0.0.1"; - public Integer LISNetPort = 9973; - } - - ; +// public static class LISSetting { +// public LISTypeEnum LISType = LISTypeEnum.SINGLE_TRACK; +// public LISProtocolEnum LISProtocol = LISProtocolEnum.Boditech; +// public LISIFType LIFIf = LISIFType.NETWORK; +// public Boolean LISAutoExport = true; +// public LISSerialBaudrateType LISSerialBaudrate = LISSerialBaudrateType.B9600; +// public String LISNetIp = "127.0.0.1"; +// public Integer LISNetPort = 9973; +// } +// +// ; @Operation(summary = "获取系统设置") @PostMapping("/getSetting") public ApiRet getAppSettings() { - LISSetting setting = new LISSetting(); - AppSetting appSetting = appSettingsMgrService.getAppSettings(); - setting.LISType = appSetting.LISType; - setting.LISProtocol = appSetting.LISProtocol; - setting.LIFIf = appSetting.LIFIf; - setting.LISAutoExport = appSetting.LISAutoExport; - setting.LISSerialBaudrate = appSetting.LISSerialBaudrate; - setting.LISNetIp = appSetting.LISNetIp; - setting.LISNetPort = appSetting.LISNetPort; - return ApiRet.success(setting); + return ApiRet.success(appSettingsMgrService.getLISSetting()); } diff --git a/src/main/java/a8k/app/dao/db/AppSettingDao.java b/src/main/java/a8k/app/dao/db/AppSettingDao.java deleted file mode 100644 index 0c49573..0000000 --- a/src/main/java/a8k/app/dao/db/AppSettingDao.java +++ /dev/null @@ -1,65 +0,0 @@ -package a8k.app.dao.db; - -import a8k.app.service.data.UtilsProjectColorAllocer; -import a8k.app.dao.db.type.AppSetting; - -import a8k.app.utils.ZSqliteJdbcHelper; -import jakarta.annotation.PostConstruct; -import jakarta.annotation.Resource; -import jakarta.validation.Valid; -import lombok.SneakyThrows; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import org.springframework.validation.annotation.Validated; - -import java.sql.ResultSet; -import java.util.List; - -/** - * ID卡数据库服务 - */ -@Component -@Validated -public class AppSettingDao { - private static final Logger logger = LoggerFactory.getLogger(AppSettingDao.class); - private static final String tableName = "zapp_a8k_appsetting"; - private static Class tClass = AppSetting.class; - - - @Resource - JdbcTemplate jdbcTemplate; - - @Resource - UtilsProjectColorAllocer colorAllocer; - - @PostConstruct - void init() { - if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { -// ZSqliteJdbcHelper.deleteTable(jdbcTemplate, tableName); - ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); - ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, AppSetting.class, new AppSetting()); - } - } - - @SneakyThrows private AppSetting rowMapper(ResultSet rs, int rowNum) { - return (AppSetting) ZSqliteJdbcHelper.rowMapper(rs, tClass); - } - - public AppSetting get() { - List list = jdbcTemplate.query("select * from " + tableName, this::rowMapper); - if (list.isEmpty()) { - AppSetting appSetting = new AppSetting(); - jdbcTemplate.update("insert into " + tableName + " values(?)", appSetting); - return appSetting; - } - return list.get(0); - } - - public void update(@Valid AppSetting appSetting) { - ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, AppSetting.class, appSetting); - } - - -} diff --git a/src/main/java/a8k/app/dao/db/DeviceSettingDao.java b/src/main/java/a8k/app/dao/db/DeviceSettingDao.java new file mode 100644 index 0000000..d149eb6 --- /dev/null +++ b/src/main/java/a8k/app/dao/db/DeviceSettingDao.java @@ -0,0 +1,33 @@ +package a8k.app.dao.db; + +import a8k.app.dao.db.type.DeviceSetting; +import a8k.app.utils.ZSqlite; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; + +/** + * ID卡数据库服务 + */ +@Component +@Validated +public class DeviceSettingDao extends ZSqlite { + @Resource + JdbcTemplate jdbcTemplate; + + @PostConstruct + void init() { + init(jdbcTemplate, "zapp_a8k_device_setting", DeviceSetting.class, false); + if (getAll().isEmpty()) { + add(new DeviceSetting()); + } + } + + public DeviceSetting get() { + return getAll().get(0); + } + + +} diff --git a/src/main/java/a8k/app/dao/db/LISSettingDao.java b/src/main/java/a8k/app/dao/db/LISSettingDao.java new file mode 100644 index 0000000..0065f76 --- /dev/null +++ b/src/main/java/a8k/app/dao/db/LISSettingDao.java @@ -0,0 +1,33 @@ +package a8k.app.dao.db; + +import a8k.app.dao.db.type.LISSetting; +import a8k.app.utils.ZSqlite; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.Resource; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; + +/** + * ID卡数据库服务 + */ +@Component +@Validated +public class LISSettingDao extends ZSqlite { + @Resource + JdbcTemplate jdbcTemplate; + + @PostConstruct + void init() { + init(jdbcTemplate, "zapp_a8k_lis_setting", LISSetting.class, false); + if (getAll().isEmpty()) { + add(new LISSetting()); + } + } + + public LISSetting get() { + return getAll().get(0); + } + + +} diff --git a/src/main/java/a8k/app/dao/db/type/DeviceSetting.java b/src/main/java/a8k/app/dao/db/type/DeviceSetting.java new file mode 100644 index 0000000..1369f90 --- /dev/null +++ b/src/main/java/a8k/app/dao/db/type/DeviceSetting.java @@ -0,0 +1,36 @@ +package a8k.app.dao.db.type; + +import a8k.app.dao.db.type.appsetting.settingenum.*; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class DeviceSetting { + public int id = 0; + + @Schema(description = "语言") + @NotNull + public LanguageType language = LanguageType.zh_CN; + + @Schema(description = "自动打印报告") + @NotNull + public Boolean autoPrint = false; + + @Schema(description = "自动登出") + @NotNull + public Integer autoLogoutTimeout = 0; + + @Schema(description = "设备温度") + @NotNull + @Min(15) + @Max(35) + public Integer temperature = 25; + + public Boolean DHCP = true; + + public String localIp = ""; + +} diff --git a/src/main/java/a8k/app/dao/db/type/AppSetting.java b/src/main/java/a8k/app/dao/db/type/LISSetting.java similarity index 95% rename from src/main/java/a8k/app/dao/db/type/AppSetting.java rename to src/main/java/a8k/app/dao/db/type/LISSetting.java index b22a44d..d016ed3 100644 --- a/src/main/java/a8k/app/dao/db/type/AppSetting.java +++ b/src/main/java/a8k/app/dao/db/type/LISSetting.java @@ -8,7 +8,7 @@ import jakarta.validation.constraints.NotNull; import lombok.Data; @Data -public class AppSetting { +public class LISSetting { public int id = 0; @Schema(description = "语言") @@ -21,7 +21,7 @@ public class AppSetting { @Schema(description = "自动登出") @NotNull - public Boolean autoLogout = false; + public Integer autoLogoutTimeout = 0; @Schema(description = "LIS类型") @NotNull diff --git a/src/main/java/a8k/app/dao/db/type/appsetting/settingenum/AutoLogoutOption.java b/src/main/java/a8k/app/dao/db/type/appsetting/settingenum/AutoLogoutOption.java index 20e2c15..9149f49 100644 --- a/src/main/java/a8k/app/dao/db/type/appsetting/settingenum/AutoLogoutOption.java +++ b/src/main/java/a8k/app/dao/db/type/appsetting/settingenum/AutoLogoutOption.java @@ -1,7 +1,7 @@ package a8k.app.dao.db.type.appsetting.settingenum; public enum AutoLogoutOption { - T00_00, + DISABLE, T00_10, T00_30, T01_00, diff --git a/src/main/java/a8k/app/service/background/TemperatureCtrlService.java b/src/main/java/a8k/app/service/background/TemperatureCtrlService.java index c171096..a454548 100644 --- a/src/main/java/a8k/app/service/background/TemperatureCtrlService.java +++ b/src/main/java/a8k/app/service/background/TemperatureCtrlService.java @@ -4,7 +4,6 @@ package a8k.app.service.background; import a8k.OS; import a8k.app.service.setting.AppSettingsMgrService; import a8k.app.hardware.driver.TemperatureControlDriver; -import a8k.app.dao.db.type.AppSetting; import a8k.teststate.VirtualDevice; import a8k.app.a8ktype.exception.AppException; import jakarta.annotation.PostConstruct; @@ -83,7 +82,7 @@ public class TemperatureCtrlService { } if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) { - AppSetting setting = appSettingsMgrService.getAppSettings(); + var setting = appSettingsMgrService.getDeviceSetting(); targetTemperature = setting.getTemperature(); } temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue()); @@ -99,7 +98,7 @@ public class TemperatureCtrlService { OS.forceSleep(1000); if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) { - Integer settingTem = appSettingsMgrService.getAppSettings().getTemperature(); + Integer settingTem = appSettingsMgrService.getDeviceSetting().getTemperature(); if (!targetTemperature.equals(settingTem)) { targetTemperature = settingTem; temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue()); diff --git a/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java b/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java index 91d7546..f04971c 100644 --- a/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java +++ b/src/main/java/a8k/app/service/setting/AppSettingsMgrService.java @@ -1,8 +1,10 @@ package a8k.app.service.setting; -import a8k.app.dao.db.AppSettingDao; -import a8k.app.dao.db.type.AppSetting; +import a8k.app.dao.db.DeviceSettingDao; +import a8k.app.dao.db.LISSettingDao; +import a8k.app.dao.db.type.DeviceSetting; +import a8k.app.dao.db.type.LISSetting; import a8k.app.dao.db.type.appsetting.AppSettingName; import a8k.app.dao.db.type.appsetting.settingenum.*; import jakarta.annotation.PostConstruct; @@ -15,7 +17,10 @@ public class AppSettingsMgrService { Logger logger = org.slf4j.LoggerFactory.getLogger(AppSettingsMgrService.class); @Resource - AppSettingDao appSettingDao; + DeviceSettingDao deviceSettingDao; + + @Resource + LISSettingDao lisSettingDao; @PostConstruct public void init() { @@ -32,96 +37,100 @@ public class AppSettingsMgrService { // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - public AppSetting getAppSettings() { - return appSettingDao.get(); + public DeviceSetting getDeviceSetting() { + return deviceSettingDao.get(); + } + + public LISSetting getLISSetting() { + return lisSettingDao.get(); } public void setLanguage(LanguageType val) { - AppSetting setting = appSettingDao.get(); + DeviceSetting setting = deviceSettingDao.get(); setting.language = val; - appSettingDao.update(setting); + deviceSettingDao.update(setting); } public void setAutoPrint(Boolean val) { - AppSetting setting = appSettingDao.get(); + DeviceSetting setting = deviceSettingDao.get(); setting.autoPrint = val; - appSettingDao.update(setting); + deviceSettingDao.update(setting); } - public void setAutoLogout(Boolean val) { - AppSetting setting = appSettingDao.get(); - setting.autoLogout = val; - appSettingDao.update(setting); + public void setAutoLogoutTimeout(Integer val) { + DeviceSetting setting = deviceSettingDao.get(); + setting.autoLogoutTimeout = val; + deviceSettingDao.update(setting); } public void setLISType(LISTypeEnum val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISType = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLISProtocol(LISProtocolEnum val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISProtocol = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLIFIf(LISIFType val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LIFIf = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLISAutoExport(Boolean val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISAutoExport = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLISSerialBaudrate(LISSerialBaudrateType val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISSerialBaudrate = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLISNetIp(String val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISNetIp = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setLISNetPort(Integer val) { - AppSetting setting = appSettingDao.get(); + LISSetting setting = lisSettingDao.get(); setting.LISNetPort = val; - appSettingDao.update(setting); + lisSettingDao.update(setting); } public void setTemperature(Integer val) { - AppSetting setting = appSettingDao.get(); + DeviceSetting setting = deviceSettingDao.get(); setting.setTemperature(val); - appSettingDao.update(setting); + deviceSettingDao.update(setting); } public void setDHCP(Boolean val) { - AppSetting setting = appSettingDao.get(); + DeviceSetting setting = deviceSettingDao.get(); setting.setDHCP(val); - appSettingDao.update(setting); + deviceSettingDao.update(setting); } public void setLocalIp(String val) { - AppSetting setting = appSettingDao.get(); + DeviceSetting setting = deviceSettingDao.get(); setting.setLocalIp(val); - appSettingDao.update(setting); + deviceSettingDao.update(setting); } } diff --git a/src/main/java/a8k/extui/page/debug/P20AppSettingDebugPage.java b/src/main/java/a8k/extui/page/debug/P20AppSettingDebugPage.java index c9efa6b..8a20ada 100644 --- a/src/main/java/a8k/extui/page/debug/P20AppSettingDebugPage.java +++ b/src/main/java/a8k/extui/page/debug/P20AppSettingDebugPage.java @@ -1,6 +1,7 @@ package a8k.extui.page.debug; -import a8k.app.dao.db.type.AppSetting; +import a8k.app.dao.db.type.DeviceSetting; +import a8k.app.dao.db.type.LISSetting; import a8k.app.dao.db.type.appsetting.settingenum.*; import a8k.app.service.setting.AppSettingsMgrService; import a8k.extui.mgr.ExtApiPageMgr; @@ -17,8 +18,12 @@ public class P20AppSettingDebugPage { @ExtApiStatu(name = "", group = "AppSetting", order = 1) - public AppSetting getAppSetting() { - return appSettingsMgrService.getAppSettings(); + public LISSetting getAppSetting() { + return appSettingsMgrService.getLISSetting(); + } + + public DeviceSetting getDeviceSetting() { + return appSettingsMgrService.getDeviceSetting(); } // @@ -30,8 +35,8 @@ public class P20AppSettingDebugPage { appSettingsMgrService.setAutoPrint(val); } - public void setAutoLogout(Boolean val) { - appSettingsMgrService.setAutoLogout(val); + public void setAutoLogoutTimeout(Integer val) { + appSettingsMgrService.setAutoLogoutTimeout(val); } public void setLISType(LISTypeEnum val) { @@ -82,7 +87,7 @@ public class P20AppSettingDebugPage { var page = extApiPageMgr.newPage(this); page.addFunction("设置语言", this::setLanguage); page.addFunction("设置自动打印", this::setAutoPrint); - page.addFunction("设置自动登出", this::setAutoLogout); + page.addFunction("设置自动登出", this::setAutoLogoutTimeout); page.addFunction("设置LIS类型", this::setLISType); page.addFunction("设置LIS协议", this::setLISProtocol); page.addFunction("设置LIS接口", this::setLIFIf);