diff --git a/app.db b/app.db index be9fc90..b7ef66a 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java b/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java index 659a4dd..f030696 100644 --- a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java +++ b/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java @@ -2,6 +2,7 @@ package a8k.extapi_controler.pagecontrol; public enum ExtApiTabConfig { AppDebugHelperService("调试助手", true), + FrontEndEventRouter("基础组件.前端事件路由", true), AppDeviceCtrlService("应用控制.应用控制", true), AppTubeSettingMgrService("应用控制.试管(样本)配置", true),//OK @@ -15,7 +16,6 @@ public enum ExtApiTabConfig { AppProjInfoMgrService("应用数据.项目信息管理", true), //OK AppReactionResultMgrService("应用数据.反应结果管理", true), //OK AppSampleMgrService("应用数据.样本管理", true), //OK - AppFrontEndEventRouter("基础组件.前端事件路由", true), ActionReactorService("底层调试.单步调试", false),//OK diff --git a/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java b/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java index adc107d..fd4c043 100644 --- a/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java +++ b/src/main/java/a8k/service/app/appctrl/AppDeviceCtrlService.java @@ -110,18 +110,37 @@ public class AppDeviceCtrlService { return gstate; } + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * 系统控制 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ - @ExtApiFn(name = "关机", group = "系统") + @ExtApiFn(name = "关机", group = "主机") public void shutdown() { //TODO: } - @ExtApiFn(name = "获取设备IP", group = "系统") + @ExtApiFn(name = "获取设备IP", group = "主机") public String readdeviceip() { //TODO: return "192.168.8.10"; } + Boolean beepState = false; + + @ExtApiFn(name = "打开蜂鸣器", group = "主机") + public void startBeepWarning() { + beepState = true; + } + + @ExtApiFn(name = "关闭蜂鸣器", group = "主机") + public void stopBeepWarning() { + beepState = false; + } + + @ExtApiFn(name = "获取蜂鸣器状态", group = "主机") + public Boolean getBeepWarningStatus() { + return false; + } + + } diff --git a/src/main/java/a8k/service/app/appsetting/AppSettingsMgr.java b/src/main/java/a8k/service/app/appsetting/AppSettingsMgr.java index 40489b4..4f14630 100644 --- a/src/main/java/a8k/service/app/appsetting/AppSettingsMgr.java +++ b/src/main/java/a8k/service/app/appsetting/AppSettingsMgr.java @@ -2,67 +2,42 @@ package a8k.service.app.appsetting; import a8k.service.db.AppSettingDBService; import a8k.service.db.type.AppSetting; -import a8k.service.db.type.appsetting.AppSettingType; import a8k.service.db.type.appsetting.settingenum.*; import a8k.extapi_controler.utils.ExtApiTab; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.service.db.type.appsetting.AppSettingTab; import a8k.service.db.type.appsetting.AppSettingName; -import a8k.hardware.type.a8kcanprotocol.A8kEcode; -import a8k.type.exception.AppException; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.slf4j.Logger; import org.springframework.stereotype.Component; -import java.util.List; - @Component @ExtApiTab(cfg = ExtApiTabConfig.AppSettingsMgr) public class AppSettingsMgr { Logger logger = org.slf4j.LoggerFactory.getLogger(AppSettingsMgr.class); static class ORDER { - static final int getAppSettings = 1; - static final int getAppSettingByName = 2; - static final int getAppSettingByTab = 2; - static final int getTabs = 3; - static final int getAppSettingTypesRange = 4; - static final int getAppSettingNamesRange = 5; - static final int setOptionVal = 6; + final static int getAppSetting = 1; + final static int setLanguage = 2; + final static int setAutoPrint = 3; + final static int setAutoLogout = 4; + final static int setLISType = 5; + final static int setLISProtocol = 6; + final static int setLIFIf = 7; + final static int setLISAutoExport = 8; + final static int setLISSerialBaudrate = 9; + final static int setLISNetIp = 10; + final static int setLISNetPort = 11; } - static Integer settingPageVersion = 1;// 如果配置项发生改变,修改这个数字,可以重置数据库 - @Resource AppSettingDBService appSettingDBService; @PostConstruct public void init() { - logger.info("AppSettingsMgr init"); - var SETTING_PAGE_VERSION = appSettingDBService.getSettingByName(AppSettingName.SETTING_PAGE_VERSION); - if (SETTING_PAGE_VERSION == null || !SETTING_PAGE_VERSION.getValueAsInt().equals(settingPageVersion)) { - appSettingDBService.clearAllSettings(); - initsettingdb(); - } - } - - public void initsettingdb() { - appSettingDBService.addSettingVersion(settingPageVersion); - //AppSettingTab.DEVICE - appSettingDBService.addEnumSetting(AppSettingTab.DEVICE, AppSettingName.LANGUAGE, LanguageType.class, LanguageType.zh_CN); - appSettingDBService.addBooleanSetting(AppSettingTab.DEVICE, AppSettingName.AUTO_PRINT, false); - appSettingDBService.addEnumSetting(AppSettingTab.DEVICE, AppSettingName.AUTO_LOGOUT, AutoLogoutOption.class, AutoLogoutOption.T00_10); - - // AppSettingTab.LIS - appSettingDBService.addEnumSetting(AppSettingTab.LIS, AppSettingName.LIS_TYPE, LISTypeEnum.class, LISTypeEnum.SINGLE_TRACK); - appSettingDBService.addEnumSetting(AppSettingTab.LIS, AppSettingName.LIS_PROTOCOL, LISProtocolEnum.class, LISProtocolEnum.Boditech); - appSettingDBService.addEnumSetting(AppSettingTab.LIS, AppSettingName.LIS_IF, LISIFType.class, LISIFType.NETWORK); - appSettingDBService.addEnumSetting(AppSettingTab.LIS, AppSettingName.LIS_SERIAL_BAUDRATE, LISSerialBaudrate.class, LISSerialBaudrate.B9600); - appSettingDBService.addIpSetting(AppSettingTab.LIS, AppSettingName.LIS_NET_IP, "127.0.0.1"); - appSettingDBService.addPortSetting(AppSettingTab.LIS, AppSettingName.LIS_NET_PORT, 8080); + } Boolean isOptionLegal(AppSettingName name, String val) { @@ -74,50 +49,104 @@ public class AppSettingsMgr { // EXT FUNC // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - @ExtApiFn(name = "getAppSettings", order = ORDER.getAppSettings) - public List getAppSettings() { - return (appSettingDBService.getAllSettings()); + @ExtApiFn(name = "getAppSetting", group = "读取", order = ORDER.getAppSetting) + public AppSetting getAppSettings() { + return appSettingDBService.get(); + } + + @ExtApiFn(name = "getEnumRangeLanguageType", group = "枚举类型") + public LanguageType[] getEnumRangeLanguageType() { + return LanguageType.values(); } - @ExtApiFn(name = "getAppSettingByName", order = ORDER.getAppSettingByName) - public AppSetting getAppSettingByName(AppSettingName name) { - return (appSettingDBService.getSettingByName(name)); + @ExtApiFn(name = "getEnumRangeAppSettingType", group = "枚举类型") + public LISTypeEnum[] getEnumRangeLISTypeEnum() { + return LISTypeEnum.values(); } - @ExtApiFn(name = "getAppSettingByTab", order = ORDER.getAppSettingByTab) - public List getAppSettingByTab(AppSettingTab tab) { - return (appSettingDBService.getSettingsByTab(tab)); + @ExtApiFn(name = "getEnumRangeLISProtocolEnum", group = "枚举类型") + public LISProtocolEnum[] getEnumRangeLISProtocolEnum() { + return LISProtocolEnum.values(); } + @ExtApiFn(name = "getEnumRangeLISIFTypeEnum", group = "枚举类型") + public LISIFType[] getEnumRangeLISIFType() { + return LISIFType.values(); + } + + @ExtApiFn(name = "getEnumRangeLISSerialBaudrateType", group = "枚举类型") + public LISSerialBaudrateType[] getEnumRangeLISSerialBaudrateType() { + return LISSerialBaudrateType.values(); + } + + @ExtApiFn(name = "setLanguage", group = "设置", order = ORDER.setLanguage) + public void setLanguage(LanguageType val) { + AppSetting setting = appSettingDBService.get(); + setting.language = val; + appSettingDBService.update(setting); + } - @ExtApiFn(name = "getTabs", order = ORDER.getTabs) - public AppSettingTab[] getTabs() { - return (AppSettingTab.values()); + @ExtApiFn(name = "setAutoPrint", group = "设置", order = ORDER.setAutoPrint) + public void setAutoPrint(Boolean val) { + AppSetting setting = appSettingDBService.get(); + setting.autoPrint = val; + appSettingDBService.update(setting); } - @ExtApiFn(name = "getAppSettingTypesRange", order = ORDER.getAppSettingTypesRange) - public AppSettingType[] getAppSettingTypesRange() { - return (AppSettingType.values()); + @ExtApiFn(name = "setAutoLogout", group = "设置", order = ORDER.setAutoLogout) + public void setAutoLogout(Boolean val) { + AppSetting setting = appSettingDBService.get(); + setting.autoLogout = val; + appSettingDBService.update(setting); } - @ExtApiFn(name = "getAppSettingNamesRange", order = ORDER.getAppSettingNamesRange) - public AppSettingName[] getAppSettingNamesRange() { - return (AppSettingName.values()); + @ExtApiFn(name = "setLISType", group = "设置", order = ORDER.setLISType) + public void setLISType(LISTypeEnum val) { + AppSetting setting = appSettingDBService.get(); + setting.LISType = val; + appSettingDBService.update(setting); } - @ExtApiFn(name = "setOptionVal", order = ORDER.setOptionVal) - public AppSetting setOptionVal(AppSettingName optionName, String val) throws AppException { - logger.info("setOptionVal {}={}", optionName, val); - if (!isOptionLegal(optionName, val)) { - throw new AppException(A8kEcode.FrontendParamTypeError); - } - appSettingDBService.updateSetting(optionName, val); - return getAppSettingByName(optionName); + @ExtApiFn(name = "setLISProtocol", group = "设置", order = ORDER.setLISProtocol) + public void setLISProtocol(LISProtocolEnum val) { + AppSetting setting = appSettingDBService.get(); + setting.LISProtocol = val; + appSettingDBService.update(setting); } - @ExtApiFn(name = "factoryReset") - public void factoryReset() { - appSettingDBService.clearAllSettings(); - initsettingdb(); + @ExtApiFn(name = "setLIFIf", group = "设置", order = ORDER.setLIFIf) + public void setLIFIf(LISIFType val) { + AppSetting setting = appSettingDBService.get(); + setting.LIFIf = val; + appSettingDBService.update(setting); } + + @ExtApiFn(name = "setLISAutoExport", group = "设置", order = ORDER.setLISAutoExport) + public void setLISAutoExport(Boolean val) { + AppSetting setting = appSettingDBService.get(); + setting.LISAutoExport = val; + appSettingDBService.update(setting); + } + + @ExtApiFn(name = "setLISSerialBaudrate", group = "设置", order = ORDER.setLISSerialBaudrate) + public void setLISSerialBaudrate(LISSerialBaudrateType val) { + AppSetting setting = appSettingDBService.get(); + setting.LISSerialBaudrate = val; + appSettingDBService.update(setting); + } + + @ExtApiFn(name = "setLISNetIp", group = "设置", order = ORDER.setLISNetIp) + public void setLISNetIp(String val) { + AppSetting setting = appSettingDBService.get(); + setting.LISNetIp = val; + appSettingDBService.update(setting); + } + + @ExtApiFn(name = "setLISNetPort", group = "设置", order = ORDER.setLISNetPort) + public void setLISNetPort(Integer val) { + AppSetting setting = appSettingDBService.get(); + setting.LISNetPort = val; + appSettingDBService.update(setting); + } + } diff --git a/src/main/java/a8k/service/bases/FrontEndEventRouter.java b/src/main/java/a8k/service/bases/FrontEndEventRouter.java index 8541c39..98ce212 100644 --- a/src/main/java/a8k/service/bases/FrontEndEventRouter.java +++ b/src/main/java/a8k/service/bases/FrontEndEventRouter.java @@ -3,8 +3,7 @@ package a8k.service.bases; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiTab; import a8k.extapi_controler.utils.ExtApiFn; -import a8k.service.bases.appevent.A8kHardwareReport; -import a8k.service.bases.appevent.AppEvent; +import a8k.service.bases.appevent.*; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.slf4j.Logger; @@ -14,7 +13,7 @@ import java.util.List; import java.util.Queue; @Component -@ExtApiTab(cfg = ExtApiTabConfig.AppFrontEndEventRouter) +@ExtApiTab(cfg = ExtApiTabConfig.FrontEndEventRouter) public class FrontEndEventRouter { static Logger logger = org.slf4j.LoggerFactory.getLogger(FrontEndEventRouter.class); @@ -27,7 +26,6 @@ public class FrontEndEventRouter { private final Queue appEventQueue = new java.util.concurrent.ConcurrentLinkedQueue<>(); - @PostConstruct public void init() { eventBus.regListener(this::onAppEvent); @@ -45,6 +43,8 @@ public class FrontEndEventRouter { Boolean filterEvent(AppEvent event) { if (event instanceof A8kHardwareReport) { return true; + } else if (event instanceof A8kCanBusOnConnectEvent) { + return true; } return false; } @@ -61,12 +61,7 @@ public class FrontEndEventRouter { if (filterEvent(event)) { return; } - appEventQueue.add(event); - if (appEventQueue.size() >= 20) { - logger.warn("too many events in queue, drop some"); - pollAppEventFromQueue(); - } } // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -78,10 +73,12 @@ public class FrontEndEventRouter { return (pollAppEventFromQueue()); } - @ExtApiFn(name = "读取所有事件(不清空)") + @ExtApiFn(name = "读取所有事件") public List readAllAppEvents() { - return (new java.util.ArrayList<>(appEventQueue)); - + List ret = new java.util.ArrayList<>(); + while (!appEventQueue.isEmpty()) { + ret.add(pollAppEventFromQueue()); + } + return ret; } - } diff --git a/src/main/java/a8k/service/bases/appevent/A8kStateChangeEvent.java b/src/main/java/a8k/service/bases/appevent/A8kStateChangeEvent.java deleted file mode 100644 index fecf5b7..0000000 --- a/src/main/java/a8k/service/bases/appevent/A8kStateChangeEvent.java +++ /dev/null @@ -1,8 +0,0 @@ -package a8k.service.bases.appevent; - -public class A8kStateChangeEvent extends AppEvent { - - A8kStateChangeEvent(String displayInfo) { - super(A8kStateChangeEvent.class.getSimpleName()); - } -} diff --git a/src/main/java/a8k/service/bases/appevent/AppEvent.java b/src/main/java/a8k/service/bases/appevent/AppEvent.java index a73f958..0132bb6 100644 --- a/src/main/java/a8k/service/bases/appevent/AppEvent.java +++ b/src/main/java/a8k/service/bases/appevent/AppEvent.java @@ -4,9 +4,9 @@ import java.util.Date; import java.util.UUID; public class AppEvent { - public String typeName; - public Date date = new Date(); - public String id = UUID.randomUUID().toString(); + public String typeName; + public Integer timestamp = (int) (new Date().getTime() / 1000); + public String id = UUID.randomUUID().toString(); public AppEvent(String typeName) { this.typeName = typeName; diff --git a/src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java b/src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java index f07cc8e..037da8b 100644 --- a/src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java +++ b/src/main/java/a8k/service/bases/appevent/AppIDCardMountEvent.java @@ -1,14 +1,15 @@ package a8k.service.bases.appevent; +import a8k.service.db.type.A8kIdCardBreifInfo; import a8k.service.db.type.A8kIdCardInfo; public class AppIDCardMountEvent extends AppEvent { - public A8kIdCardInfo projectInfo; + public A8kIdCardBreifInfo projectInfo; public AppIDCardMountEvent(A8kIdCardInfo projectInfo) { super(AppIDCardMountEvent.class.getSimpleName()); - this.projectInfo = projectInfo; + this.projectInfo = projectInfo.toBreif(); } } diff --git a/src/main/java/a8k/service/bases/appevent/AppStepNotifyEvent.java b/src/main/java/a8k/service/bases/appevent/AppStepNotifyEvent.java deleted file mode 100644 index f79cada..0000000 --- a/src/main/java/a8k/service/bases/appevent/AppStepNotifyEvent.java +++ /dev/null @@ -1,15 +0,0 @@ -package a8k.service.bases.appevent; - - -public class AppStepNotifyEvent extends AppEvent { - String displayInfo; - - AppStepNotifyEvent(String displayInfo) { - super(AppStepNotifyEvent.class.getSimpleName()); - this.displayInfo = displayInfo; - } - - public String getDisplayInfo() { - return displayInfo; - } -} diff --git a/src/main/java/a8k/service/db/AppSettingDBService.java b/src/main/java/a8k/service/db/AppSettingDBService.java index 2d5a1b2..791e70f 100644 --- a/src/main/java/a8k/service/db/AppSettingDBService.java +++ b/src/main/java/a8k/service/db/AppSettingDBService.java @@ -1,218 +1,70 @@ package a8k.service.db; +import a8k.service.app.appdata.UtilsProjectColorAllocer; import a8k.service.db.type.AppSetting; -import a8k.service.db.type.appsetting.AppSettingName; -import a8k.service.db.type.appsetting.AppSettingTab; -import a8k.service.db.type.appsetting.AppSettingType; -import a8k.utils.ZEnumHelper; +import a8k.service.debug.AppDebugHelperService; import a8k.utils.ZSqliteJdbcHelper; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; +import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; import java.sql.ResultSet; -import java.sql.SQLException; import java.util.List; +/** + * ID卡数据库服务 + */ @Component public class AppSettingDBService { - private static final Logger logger = LoggerFactory.getLogger(AppSettingDBService.class); - private static final String tableName = "zapp_setting"; + private static final Logger logger = LoggerFactory.getLogger(AppSettingDBService.class); + private static final String tableName = "zapp_a8k_appsetting"; + private static Class tClass = AppSetting.class; @Resource JdbcTemplate jdbcTemplate; + @Resource + UtilsProjectColorAllocer colorAllocer; + + @Resource + AppDebugHelperService appDebugHelper; + @PostConstruct void init() { - if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { - createTable(); + if (appDebugHelper.isDebug()) { + ZSqliteJdbcHelper.forceDeleteTable(jdbcTemplate, tableName); + ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); + ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, AppSetting.class, new AppSetting()); + return; } - } - - private AppSetting rowMapper(ResultSet rs, int rowNum) throws SQLException { - AppSetting obj = new AppSetting(); - obj.id = rs.getInt("id"); - obj.type = rs.getString("type") != null ? AppSettingType.valueOf(rs.getString("type")) : null; - obj.tab = rs.getString("tab") != null ? AppSettingTab.valueOf(rs.getString("tab")) : null; - obj.name = rs.getString("name") != null ? AppSettingName.valueOf(rs.getString("name")) : null; - obj.display = rs.getBoolean("display"); - - obj.minVal = rs.getDouble("minVal"); - obj.maxVal = rs.getDouble("maxVal"); - String valueEnumRange = rs.getString("valueEnumRange"); - if (valueEnumRange != null) - obj.valueEnumRange = valueEnumRange.split(","); - - obj.value = rs.getString("value"); - return obj; - } - - private void createTable() { - jdbcTemplate.execute("create table " + tableName + " ('id' integer," - + " 'type' text," - + " 'tab' text," - + " 'name' text," - + " 'display' integer," - + " 'minVal' real," - + " 'maxVal' real," - + " 'valueEnumRange' text, " - + "'value' text," - + " PRIMARY KEY ('id' DESC));"); - } - - - public List getAllSettings() { - return jdbcTemplate.query("select * from " + tableName, this::rowMapper); - } - public AppSetting getSettingByName(AppSettingName name) { - List settings = jdbcTemplate.query("select * from " + tableName + " where name = ?;", this::rowMapper, name.name()); - if (settings.isEmpty()) { - return null; + if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { + ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); } - return settings.get(0); - } - - public List getSettingsByTab(AppSettingTab tab) { - return jdbcTemplate.query("select * from " + tableName + " where tab = ?;", this::rowMapper, tab.name()); - } - - public void clearAllSettings() { - jdbcTemplate.execute("delete from " + tableName); - } - - public void updateSetting(AppSettingName name, String val) { - jdbcTemplate.update("update " + tableName + " set value = ? where name = ?;", val, name.name()); } - public void addSetting(AppSetting setting) { - jdbcTemplate.update("insert into " + tableName + " (type, tab, name, display, minVal, maxVal, valueEnumRange, value) values (?, ?, ?, ?, ?, ?, ?, ?);", - setting.type != null ? setting.type.name() : null, - setting.tab != null ? setting.tab.name() : null, - setting.name != null ? setting.name.name() : null, - setting.display ? 1 : 0, - setting.minVal, - setting.maxVal, - setting.valueEnumRange != null ? String.join(",", setting.valueEnumRange) : null, - setting.value); + @SneakyThrows private AppSetting rowMapper(ResultSet rs, int rowNum) { + return (AppSetting) ZSqliteJdbcHelper.rowMapper(rs, tClass); } - - public void addIntegerSetting(AppSettingTab tab, AppSettingName name, Integer value, Integer minVal, Integer maxVal) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.INTEGER; - setting.tab = tab; - setting.name = name; - setting.value = value.toString(); - setting.minVal = minVal.doubleValue(); - setting.maxVal = maxVal.doubleValue(); - addSetting(setting); - } - - public void addDoubleSetting(AppSettingTab tab, AppSettingName name, Double value, Double minVal, Double maxVal) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.DOUBLE; - setting.tab = tab; - setting.name = name; - setting.value = value.toString(); - setting.minVal = minVal; - setting.maxVal = maxVal; - addSetting(setting); - } - - public void addStringSetting(AppSettingTab tab, AppSettingName name, String value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.STRING; - setting.tab = tab; - setting.name = name; - setting.value = value; - addSetting(setting); - } - - public void addBooleanSetting(AppSettingTab tab, AppSettingName name, Boolean value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.BOOLEAN; - setting.tab = tab; - setting.name = name; - setting.value = value.toString(); - addSetting(setting); - } - - public void addEnumSetting(AppSettingTab tab, AppSettingName name, Class valueEnumRange, Enum value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.ENUM; - setting.tab = tab; - setting.name = name; - setting.valueEnumRange = ZEnumHelper.enum2strs(valueEnumRange); - setting.value = value.name(); - addSetting(setting); - } - - public void addDateSetting(AppSettingTab tab, AppSettingName name) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.DATE; - setting.tab = tab; - setting.name = name; - setting.value = ""; - addSetting(setting); - } - - public void addTimeSetting(AppSettingTab tab, AppSettingName name) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.TIME; - setting.tab = tab; - setting.name = name; - setting.value = ""; - addSetting(setting); - } - - public void addTimeZoneSetting(AppSettingTab tab, AppSettingName name) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.TIMEZONE; - setting.tab = tab; - setting.name = name; - setting.value = ""; - addSetting(setting); - } - - public void addIpSetting(AppSettingTab tab, AppSettingName name, String value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.IP; - setting.tab = tab; - setting.name = name; - setting.value = value; - addSetting(setting); - } - - public void addPortSetting(AppSettingTab tab, AppSettingName name, Integer value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.PORT; - setting.tab = tab; - setting.name = name; - setting.value = value.toString(); - addSetting(setting); + 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 addFixStringSetting(AppSettingTab tab, AppSettingName name, String value) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.FIX_STRING; - setting.tab = tab; - setting.name = name; - setting.value = value; - addSetting(setting); + public void update(AppSetting appSetting) { + ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, AppSetting.class, appSetting); } - public void addSettingVersion(Integer version) { - AppSetting setting = new AppSetting(); - setting.type = AppSettingType.INTEGER; - setting.name = AppSettingName.SETTING_PAGE_VERSION; - setting.value = version.toString(); - setting.display = false; - addSetting(setting); - } } diff --git a/src/main/java/a8k/service/db/type/AppSetting.java b/src/main/java/a8k/service/db/type/AppSetting.java index a8c2541..b07b205 100644 --- a/src/main/java/a8k/service/db/type/AppSetting.java +++ b/src/main/java/a8k/service/db/type/AppSetting.java @@ -1,54 +1,17 @@ package a8k.service.db.type; - -import a8k.service.db.type.appsetting.AppSettingName; -import a8k.service.db.type.appsetting.AppSettingTab; -import a8k.service.db.type.appsetting.AppSettingType; -import a8k.utils.ZJsonHelper; -import com.fasterxml.jackson.annotation.JsonIgnore; +import a8k.service.db.type.appsetting.settingenum.*; public class AppSetting { - public int id = 0; - // - // 基础属性 - // - public AppSettingType type; // 支持类型范围 AppSettingType - public AppSettingTab tab; // 返回名字为英文,前端需要根据英文名字进行翻译 - public AppSettingName name; // 返回名字为英文,前端需要根据英文名字进行翻译 - public Boolean display = true;// 是否显示 - - // - //整形和浮点型的单位数值范围 - // - public Double minVal = 0.0; //最小值 - public Double maxVal = 0.0; //最大值 - - // - // 枚举单位数值范围 - // - public String[] valueEnumRange = {}; //枚举范围,用逗号分隔 - - // - //值 - // - public String value; //Value - - @Override - public String toString() { - return ZJsonHelper.objectToJson(this); - } - - @JsonIgnore - public Integer getValueAsInt() {return Integer.parseInt(value);} - - @JsonIgnore - public String getValueAsStr() {return value;} - - @JsonIgnore - public Boolean getValueAsBool() {return Boolean.parseBoolean(value);} - - - - - -} \ No newline at end of file + public int id =0; + public LanguageType language = LanguageType.zh_CN; + public Boolean autoPrint = false; + public Boolean autoLogout = false; + 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; +} diff --git a/src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrate.java b/src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrateType.java similarity index 66% rename from src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrate.java rename to src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrateType.java index 5cfe329..836804a 100644 --- a/src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrate.java +++ b/src/main/java/a8k/service/db/type/appsetting/settingenum/LISSerialBaudrateType.java @@ -1,6 +1,6 @@ package a8k.service.db.type.appsetting.settingenum; -public enum LISSerialBaudrate { +public enum LISSerialBaudrateType { B9600, B115200, } diff --git a/src/main/java/a8k/utils/ZSqliteJdbcHelper.java b/src/main/java/a8k/utils/ZSqliteJdbcHelper.java index e21ab40..ed181b0 100644 --- a/src/main/java/a8k/utils/ZSqliteJdbcHelper.java +++ b/src/main/java/a8k/utils/ZSqliteJdbcHelper.java @@ -115,7 +115,8 @@ public class ZSqliteJdbcHelper { // args.add( field.getDouble(obj)); args.add(field.get(obj)); } else if (field.getType().equals(Boolean.class)) { - args.add(field.getBoolean(obj) ? 1 : 0); + Boolean value = (Boolean) field.get(obj); + args.add(value ? 1 : 0); } else if (field.getType().equals(String.class)) { args.add(field.get(obj)); } else if (field.getType().equals(Date.class)) {