diff --git a/app.db b/app.db index 7b79b5f..468516c 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/com/iflytop/digester/StartResetTaskThread.java b/src/main/java/com/iflytop/digester/StartResetTaskThread.java index 46ebfc7..723e3f7 100644 --- a/src/main/java/com/iflytop/digester/StartResetTaskThread.java +++ b/src/main/java/com/iflytop/digester/StartResetTaskThread.java @@ -56,9 +56,7 @@ public class StartResetTaskThread extends Thread { UfCmdSnippetExecutor.execute(String.format("PeristalticPumpEnable.%d",i)); } - var env = UfApplication.getApp().getEnv(); - Boolean enableSetup = env.getProperty("app.liquidPeristalticPumpPipeSetupEnable",Boolean.class); - assert enableSetup != null; + Boolean enableSetup = UfMdbOption.getBoolean("LiquidPeristalticPumpPipeSetupEnable", false); if ( !enableSetup ) { return ; } @@ -70,8 +68,7 @@ public class StartResetTaskThread extends Thread { UfCmdSnippetExecutor.execute("DoorClose"); // 加液管充满 - Integer liquidPipeVolume = env.getProperty("app.liquidPipeVolumn", Integer.class); - assert liquidPipeVolume != null; + int liquidPipeVolume = UfMdbOption.getInteger("LiquidPeristalticPumpPipeVolume", 1); Device device = Device.getInstance(); var tubes = List.of(0,4, 3,2, 15,11, 12,13, 1,5, 6,7, 14,10, 9,8); for ( int i=0; i<8; i++ ) { diff --git a/src/main/java/com/iflytop/digester/controller/OptionController.java b/src/main/java/com/iflytop/digester/controller/OptionController.java new file mode 100644 index 0000000..b22263a --- /dev/null +++ b/src/main/java/com/iflytop/digester/controller/OptionController.java @@ -0,0 +1,29 @@ +package com.iflytop.digester.controller; +import com.iflytop.digester.underframework.controller.UfApiControllerBase; +import com.iflytop.digester.underframework.controller.UfApiResponse; +import com.iflytop.digester.underframework.dao.model.UfMdbOption; +import com.iflytop.digester.underframework.dao.record.UfActiveRecord; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import java.util.Map; +@Controller +public class OptionController extends UfApiControllerBase { + @ResponseBody + @PostMapping("/api/option/list") + public UfApiResponse list() { + var list = UfActiveRecord.find(UfMdbOption.class, Map.of( + "editable", "1" + )); + return this.success(list); + } + + @ResponseBody + @PostMapping("/api/option/update") + public UfApiResponse update( @RequestBody UfMdbOption option) { + option.isNewRecord = false; + option.save(); + return this.success(); + } +} diff --git a/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java b/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java index 457702e..44a247f 100644 --- a/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java +++ b/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java @@ -9,6 +9,12 @@ public class UfMdbOption extends UfActiveRecord { @UfActiveRecordField public String value; + @UfActiveRecordField + public String comment; + + @UfActiveRecordField + public String editable; + // get table name public static String getTableName() { return "app_options"; @@ -34,4 +40,11 @@ public class UfMdbOption extends UfActiveRecord { var option = UfMdbOption.getString(key, defaultValue.toString()); return Double.parseDouble(option); } + + // get as boolean + public static Boolean getBoolean( String key, Boolean defaultValue ) { + var option = UfMdbOption.getString(key, defaultValue ? "1" : "0"); + option = option.toLowerCase(); + return "1".equals(option) || "true".equals(option) || "yes".equals(option) || "on".equals(option); + } }