作者 钟来

修改bug

@@ -2,13 +2,17 @@ package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs; @@ -2,13 +2,17 @@ package com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.specs;
2 2
3 import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.EnumItemOutput; 3 import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.EnumItemOutput;
4 import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase; 4 import com.zhonglai.luhui.mqtt.comm.dto.thingsmodels.ThingsModelItemBase;
  5 +import com.zhonglai.luhui.mqtt.comm.util.DateUtils;
5 import lombok.Data; 6 import lombok.Data;
  7 +import org.apache.commons.lang3.StringUtils;
6 8
  9 +import java.util.Date;
7 import java.util.List; 10 import java.util.List;
8 11
9 @Data 12 @Data
10 public class EnumModelOutput extends ThingsModelItemBase<Object> 13 public class EnumModelOutput extends ThingsModelItemBase<Object>
11 { 14 {
  15 + private String clas;
12 private List<EnumItemOutput> enumList; 16 private List<EnumItemOutput> enumList;
13 17
14 @Override 18 @Override
@@ -28,12 +32,12 @@ public class EnumModelOutput extends ThingsModelItemBase<Object> @@ -28,12 +32,12 @@ public class EnumModelOutput extends ThingsModelItemBase<Object>
28 } 32 }
29 for(EnumItemOutput enumItemOutput:enumList) 33 for(EnumItemOutput enumItemOutput:enumList)
30 { 34 {
31 - if(enumItemOutput.getValue().equals(getValue()+"")) 35 + if(String.valueOf(enumItemOutput.getValue()).equals(String.valueOf(getValue())))
32 { 36 {
33 return enumItemOutput.getText(); 37 return enumItemOutput.getText();
34 } 38 }
35 } 39 }
36 - return getValue()+""; 40 + return String.valueOf(getValue());
37 } 41 }
38 42
39 @Override 43 @Override
@@ -47,6 +51,44 @@ public class EnumModelOutput extends ThingsModelItemBase<Object> @@ -47,6 +51,44 @@ public class EnumModelOutput extends ThingsModelItemBase<Object>
47 51
48 @Override 52 @Override
49 public Object getCmdView(Object object) { 53 public Object getCmdView(Object object) {
50 - return object; 54 + if(null == clas)
  55 + {
  56 + clas = "java.lang.String";
  57 + }
  58 + return conversion(object,clas);
  59 + }
  60 +
  61 + private static Object conversion(Object data ,String clas) {
  62 + try {
  63 + return stringToTarget(String.valueOf(data),Class.forName(clas));
  64 + } catch (Exception e) {
  65 + e.printStackTrace();
  66 + }
  67 + return null;
  68 + }
  69 +
  70 + private static Object stringToTarget(String string, Class<?> t) throws Exception {
  71 + boolean nullOrEmpty = StringUtils.isEmpty(string);
  72 +
  73 + if (double.class.equals(t)) {
  74 + return nullOrEmpty ? 0 : Double.parseDouble(string);
  75 + } else if (long.class.equals(t)) {
  76 + return nullOrEmpty ? 0 : Long.parseLong(string);
  77 + } else if (int.class.equals(t)) {
  78 + return nullOrEmpty ? 0 : Integer.parseInt(string);
  79 + } else if (float.class.equals(t)) {
  80 + return nullOrEmpty ? 0 : Float.parseFloat(string);
  81 + } else if (short.class.equals(t)) {
  82 + return nullOrEmpty ? 0 : Short.parseShort(string);
  83 + } else if (boolean.class.equals(t)) {
  84 + return nullOrEmpty ? 0 : Boolean.parseBoolean(string);
  85 + } else if (Date.class.equals(t)) {
  86 + return DateUtils.parseDate(string,"yyyy-mm-dd HH:mm:ss");
  87 + } else if (Number.class.isAssignableFrom(t)) {
  88 + return nullOrEmpty ? "" : t.getConstructor(String.class).newInstance(string);
  89 + } else {
  90 + return nullOrEmpty ? "" : t.getConstructor(String.class).newInstance(string);
  91 + }
  92 +
51 } 93 }
52 } 94 }