fengxiang
2018-09-05 38d01228075244cec9f3d85c3c0ba85367a6aae9
EquDeviceAdapter 更新
3 files modified
69 ■■■■■ changed files
src/main/java/com/moral/common/convert/StringToDateConverter.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/common/util/ExampleUtil.java 56 ●●●● patch | view | raw | blame | history
src/main/resources/system/alarmLevels.json 10 ●●●●● patch | view | raw | blame | history
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;
    }
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,13 +60,29 @@
            }
            if(!StringUtils.isNullOrEmpty(params)){
                params = URLDecoder.decode(params, "UTF-8");
                loadCriterias(example,params);
            }
            if(!isDelete) {
                addDeletesToExample(example,clazz);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
            ex.printStackTrace();
        }
        return example;
    }
    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();
                        if (!StringUtils.isNullOrEmpty(criterion)) {
                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)) {
@@ -83,52 +100,36 @@
                                            }
                                        }
                                        Method method = getExampleMethod(methodName,values.size()+1);
                                        if (method != null && (methodName.equals("andCondition")||isPropertyOfClass(clazz, propertyName))) {
                    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);
                }
            }
            if(!isDelete) {
                addDeletesToExample(example,clazz);
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
            ex.printStackTrace();
        }
        return example;
    }
    private static void invokeMethod(Object obj, Method method,String propertyName,List values) throws InvocationTargetException, IllegalAccessException {
    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:
                if(method.getParameterCount()==1) {
                    method.invoke(obj, propertyName);
                }
                break;
            case 1:
                if(method.getParameterCount()==2){
                    method.invoke(obj,propertyName,values.get(0));
                }
                    Object value = values.get(0) == "null" ? null : values.get(0);
                    method.invoke(obj, propertyName,value);
                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;
        }
    }
@@ -180,6 +181,9 @@
                }
            }
        }
        if(methodTemp==null || validatetParameters(methodTemp,paramCount)){
            return null;
        }
        return methodTemp;
    }
}
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": [