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