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);
+ }
+ }
}