From 38d01228075244cec9f3d85c3c0ba85367a6aae9 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 05 Sep 2018 14:20:46 +0800
Subject: [PATCH] EquDeviceAdapter 更新
---
src/main/java/com/moral/common/convert/StringToDateConverter.java | 3
src/main/java/com/moral/common/util/ExampleUtil.java | 126 +++++++++++++++++++++--------------------
src/main/resources/system/alarmLevels.json | 10 +++
3 files changed, 76 insertions(+), 63 deletions(-)
diff --git a/src/main/java/com/moral/common/convert/StringToDateConverter.java b/src/main/java/com/moral/common/convert/StringToDateConverter.java
index 0b16948..e999880 100644
--- a/src/main/java/com/moral/common/convert/StringToDateConverter.java
+++ b/src/main/java/com/moral/common/convert/StringToDateConverter.java
@@ -25,7 +25,7 @@
public Date convert(String source) {
try {
if(StringUtils.isNullOrEmpty(source)){
- throw new BusinessException(String.format("parser %s to Date fail", source));
+ return null;
}
if(StringUtils.isNumericZidai(source)) {
source = source.length() == 10 ? source+"000" : source;
@@ -40,7 +40,6 @@
e.printStackTrace();
log.error(e.getMessage());
}
-
return null;
}
diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java
index f5f929c..e315408 100644
--- a/src/main/java/com/moral/common/util/ExampleUtil.java
+++ b/src/main/java/com/moral/common/util/ExampleUtil.java
@@ -5,6 +5,7 @@
import lombok.extern.log4j.Log4j;
import tk.mybatis.mapper.entity.Example;
+import javax.validation.constraints.NotNull;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@@ -59,40 +60,7 @@
}
if(!StringUtils.isNullOrEmpty(params)){
params = URLDecoder.decode(params, "UTF-8");
- if (params.startsWith(OR)) {
- String[] criteria = params.trim().split(OR_SPLIT);
- for (String criterion : criteria) {
- // criterion���null���""������
- if(StringUtils.isNullOrEmpty(criterion)) { continue;};
- Example.Criteria criteriaOfExample = example.or();
- if (!StringUtils.isNullOrEmpty(criterion)) {
- String[] conditions = criterion.trim().split(CRITERIA_SPLIT);
- for (String condition : conditions) {
- if (!StringUtils.isNullOrEmpty(condition)) {
- String[] conditionItems = condition.split(CONDITION_SPLIT);
- if (conditionItems != null && conditionItems.length > 1) {
- //���������
- String methodName = conditionItems[0];
- //���������
- String propertyName = conditionItems[1];
- //������������
- List values = new ArrayList<Object>();
- if (conditionItems.length > 2) {
- for (int index = 2; index < conditionItems.length; index++) {
- values.add(conditionItems[index]);
- }
- }
- Method method = getExampleMethod(methodName,values.size()+1);
- if (method != null && (methodName.equals("andCondition")||isPropertyOfClass(clazz, propertyName))) {
- invokeMethod(criteriaOfExample,method,propertyName,values);
- }
-
- }
- }
- }
- }
- }
- }
+ loadCriterias(example,params);
}
if(!isDelete) {
addDeletesToExample(example,clazz);
@@ -103,34 +71,67 @@
}
return example;
}
-
- private static void invokeMethod(Object obj, Method method,String propertyName,List values) throws InvocationTargetException, IllegalAccessException {
- int len = values.size();
- switch (len) {
- case 0:
- if(method.getParameterCount()==1) {
- method.invoke(obj, propertyName);
- }
- break;
- case 1:
-
- if(method.getParameterCount()==2){
- method.invoke(obj,propertyName,values.get(0));
- }
- break;
- //between ������
- case 2:
- if(method.getParameterCount()==3){
- method.invoke(obj,propertyName,values.toArray());
- }
- break;
- //in ������
- default:
- if(method.getParameterCount()==2){
- method.invoke(obj,propertyName,values);
- }
- break;
+ private static void loadCriterias(Example example,String params) throws InvocationTargetException, IllegalAccessException {
+ if (params.startsWith(OR)) {
+ String[] criteria = params.trim().split(OR_SPLIT);
+ for (String criterion : criteria) {
+ // criterion���null���""������
+ if(StringUtils.isNullOrEmpty(criterion)) { continue;};
+ Example.Criteria criteriaOfExample = example.or();
+ loadConditions(example,criteriaOfExample,criterion);
+ }
}
+ }
+ private static void loadConditions(Example example,Example.Criteria criteriaOfExample,String criterion) throws InvocationTargetException, IllegalAccessException {
+ String[] conditions = criterion.trim().split(CRITERIA_SPLIT);
+ for (String condition : conditions) {
+ if (!StringUtils.isNullOrEmpty(condition)) {
+ String[] conditionItems = condition.split(CONDITION_SPLIT);
+ if (conditionItems != null && conditionItems.length > 1) {
+ //���������
+ String methodName = conditionItems[0];
+ //���������
+ String propertyName = conditionItems[1];
+ //������������
+ List values = new ArrayList<Object>();
+ if (conditionItems.length > 2) {
+ for (int index = 2; index < conditionItems.length; index++) {
+ values.add(conditionItems[index]);
+ }
+ }
+ Method method = getExampleMethod(methodName,values.size()+1);
+ if (method != null && (methodName.equals("andCondition")||isPropertyOfClass(example.getEntityClass(), propertyName))) {
+ invokeMethod(criteriaOfExample,method,propertyName,values);
+ } else {
+ log.warn(condition+" can't be executed as condition");
+ }
+ }
+ }
+ }
+ }
+ private static boolean validatetParameters(@NotNull Method method,int len) {
+ //������������propertyName���������string������
+ return method.getParameterCount() == (len+1) && method.getParameterTypes()[0].equals(String.class);
+ }
+ private static void invokeMethod(@NotNull Object obj,@NotNull Method method,@NotNull String propertyName,@NotNull List values) throws InvocationTargetException, IllegalAccessException {
+ int len = values.size();
+ switch (len) {
+ case 0:
+ method.invoke(obj, propertyName);
+ break;
+ case 1:
+ Object value = values.get(0) == "null" ? null : values.get(0);
+ method.invoke(obj, propertyName,value);
+ break;
+ //between ������
+ case 2:
+ method.invoke(obj, propertyName, values.toArray());
+ break;
+ //in ������
+ default:
+ method.invoke(obj, propertyName, values);
+ break;
+ }
}
;
@@ -180,6 +181,9 @@
}
}
}
+ if(methodTemp==null || validatetParameters(methodTemp,paramCount)){
+ return null;
+ }
return methodTemp;
}
}
diff --git a/src/main/resources/system/alarmLevels.json b/src/main/resources/system/alarmLevels.json
index 7ca8e65..dd2969e 100644
--- a/src/main/resources/system/alarmLevels.json
+++ b/src/main/resources/system/alarmLevels.json
@@ -237,6 +237,16 @@
"degressEnable": 0,
"degression": [0,0,0]
},
+ "e28": {
+ "enable": 0,
+ "increment": [
+ 0,
+ 1000,
+ 2000
+ ],
+ "degressEnable": 0,
+ "degression": [0,0,0]
+ },
"e29": {
"enable": 1,
"increment": [
--
Gitblit v1.8.0