diff --git a/pom.xml b/pom.xml index 67b0c0d..0beeec7 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ com.iflytop uf - 0.0.19 + 0.0.30 uf uf diff --git a/src/main/java/com/iflytop/uf/UfActiveRecordCriteria.java b/src/main/java/com/iflytop/uf/UfActiveRecordCriteria.java index ff3a9ab..7e79caf 100644 --- a/src/main/java/com/iflytop/uf/UfActiveRecordCriteria.java +++ b/src/main/java/com/iflytop/uf/UfActiveRecordCriteria.java @@ -1,4 +1,5 @@ package com.iflytop.uf; +import java.util.HashMap; import java.util.Map; public class UfActiveRecordCriteria { // table name @@ -9,4 +10,6 @@ public class UfActiveRecordCriteria { public Integer limit; // offset public Integer offset; + // orders + public Map orders; } diff --git a/src/main/java/com/iflytop/uf/UfActiveRecordMapper.java b/src/main/java/com/iflytop/uf/UfActiveRecordMapper.java index 2b571ef..1ae7136 100644 --- a/src/main/java/com/iflytop/uf/UfActiveRecordMapper.java +++ b/src/main/java/com/iflytop/uf/UfActiveRecordMapper.java @@ -10,9 +10,12 @@ public interface UfActiveRecordMapper { "SELECT * FROM ${tableName} " + "" + "WHERE " + - "${key} = #{value}" + + "`${key}` = #{value}" + + " " + + "" + + "ORDER BY " + + "`${key}` ${value}" + " " + - "ORDER BY id DESC " + "LIMIT #{limit} " + "OFFSET #{offset}" + "" @@ -24,7 +27,7 @@ public interface UfActiveRecordMapper { "SELECT COUNT(*) FROM ${tableName} " + "" + "WHERE " + - "${key} = #{value}" + + "`${key}` = #{value}" + "" + "" ) @@ -36,7 +39,7 @@ public interface UfActiveRecordMapper { @Insert( "" diff --git a/src/main/java/com/iflytop/uf/actuator/UfActPipette.java b/src/main/java/com/iflytop/uf/actuator/UfActPipette.java index bdf8e86..a679fa6 100644 --- a/src/main/java/com/iflytop/uf/actuator/UfActPipette.java +++ b/src/main/java/com/iflytop/uf/actuator/UfActPipette.java @@ -9,4 +9,9 @@ public class UfActPipette extends UfActuatorBase { public String ctrlPutTip(UfMdbActuatorCmd cmd) { return this.executeAndWaitForFinish(cmd); } + + @UfActuatorCommand(name = "pipette_ctrl_move_to_ul") + public String ctrlMoveToUl(UfMdbActuatorCmd cmd) { + return this.executeAndWaitForFinish(cmd); + } } diff --git a/src/main/java/com/iflytop/uf/model/UfMdbDictItem.java b/src/main/java/com/iflytop/uf/model/UfMdbDictItem.java index b4be68d..2293834 100644 --- a/src/main/java/com/iflytop/uf/model/UfMdbDictItem.java +++ b/src/main/java/com/iflytop/uf/model/UfMdbDictItem.java @@ -36,4 +36,18 @@ public class UfMdbDictItem extends UfActiveRecord { assert item != null; return item.itemName; } + + // get key value + public static String getValue( String groupKey, String itemKey ) { + var item = UfActiveRecord.findOne(UfMdbDictItem.class, Map.of("groupKey", groupKey, "itemKey", itemKey)); + assert item != null; + return item.itemValue; + } + + // match + public static Boolean match( String groupKey, String itemKey, String value ) { + var item = UfActiveRecord.findOne(UfMdbDictItem.class, Map.of("groupKey", groupKey, "itemKey", itemKey)); + assert item != null; + return item.itemValue.equals(value); + } } diff --git a/src/main/java/com/iflytop/uf/model/UfMdbOption.java b/src/main/java/com/iflytop/uf/model/UfMdbOption.java index 4bff181..8f255cc 100644 --- a/src/main/java/com/iflytop/uf/model/UfMdbOption.java +++ b/src/main/java/com/iflytop/uf/model/UfMdbOption.java @@ -35,6 +35,15 @@ public class UfMdbOption extends UfActiveRecord { return option.value; } + // get option string + public static String getString( String key ) { + var option = UfActiveRecord.findOne(UfMdbOption.class, Map.of("key", key)); + if ( null == option ) { + throw new RuntimeException("Option not found : " + key); + } + return option.value; + } + // get option public static Integer getInteger(String key, Integer defaultValue ) { var option = UfMdbOption.getString(key, defaultValue.toString()); @@ -42,15 +51,34 @@ public class UfMdbOption extends UfActiveRecord { } // get option + public static Integer getInteger( String key ) { + var option = UfMdbOption.getString(key); + return Integer.parseInt(option); + } + + // get option public static Double getDouble(String key, Double defaultValue ) { var option = UfMdbOption.getString(key, defaultValue.toString()); return Double.parseDouble(option); } + // get option value as double + public static Double getDouble( String key ) { + var option = UfMdbOption.getString(key); + 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); } + + // get option value as boolean + public static Boolean getBoolean( String key ) { + var option = UfMdbOption.getString(key); + option = option.toLowerCase(); + return "1".equals(option) || "true".equals(option) || "yes".equals(option) || "on".equals(option); + } } diff --git a/src/main/java/com/iflytop/uf/util/UfJsonHelper.java b/src/main/java/com/iflytop/uf/util/UfJsonHelper.java index d23d083..888e48c 100644 --- a/src/main/java/com/iflytop/uf/util/UfJsonHelper.java +++ b/src/main/java/com/iflytop/uf/util/UfJsonHelper.java @@ -1,4 +1,5 @@ package com.iflytop.uf.util; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class UfJsonHelper { // object to json @@ -10,4 +11,14 @@ public class UfJsonHelper { throw new RuntimeException(e); } } + + // json to node + public static JsonNode jsonToNode(String json) { + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.readTree(json); + } catch (Exception e) { + throw new RuntimeException(e); + } + } }