diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
index 83458ab..8a287d4 100644
--- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
@@ -130,10 +130,18 @@
deviceAdapter.setOnItemClickListener(object :
DeviceListAdapter.OnItemClickListener {
override fun onClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].tubeId)
}
override fun onHistoryClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].devcode)
}
})
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
index 83458ab..8a287d4 100644
--- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
@@ -130,10 +130,18 @@
deviceAdapter.setOnItemClickListener(object :
DeviceListAdapter.OnItemClickListener {
override fun onClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].tubeId)
}
override fun onHistoryClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].devcode)
}
})
diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
index 694aff6..292f041 100644
--- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
@@ -4,6 +4,7 @@
import android.widget.AdapterView
import androidx.lifecycle.ViewModelProvider
import com.casic.smarttube.R
+import com.casic.smarttube.extensions.dateToMonthDay
import com.casic.smarttube.extensions.getQuarterOfYear
import com.casic.smarttube.model.LineChartEntryModel
import com.casic.smarttube.utils.ChartViewHelper
@@ -13,17 +14,16 @@
import com.gyf.immersionbar.ImmersionBar
import com.jzxiang.pickerview.data.Type
import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.timestampToDate
-import com.pengxh.kt.lite.extensions.timestampToLastMonthDate
-import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.*
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import kotlinx.android.synthetic.main.activity_history_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
import java.util.*
class HistoryDataActivity : KotlinBaseActivity() {
+ private val kTag = "HistoryDataActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var devCode: String
@@ -32,6 +32,7 @@
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).init()
ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "历史数据"
leftBackView.setOnClickListener { finish() }
}
@@ -55,7 +56,7 @@
0 -> {
//本年度
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, "$year-01-01", time.timestampToDate()
+ devCode, "$year-01-01", time.timestampToDate()
)
}
1 -> {
@@ -68,25 +69,25 @@
else -> ""
}
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, time.timestampToDate()
+ devCode, startDate, time.timestampToDate()
)
}
2 -> {
//近30日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastMonthDate(), time.timestampToDate()
+ devCode, time.timestampToLastMonthDate(), time.timestampToDate()
)
}
3 -> {
//近7日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastWeekDate(), time.timestampToDate()
+ devCode, time.timestampToLastWeekDate(), time.timestampToDate()
)
}
4 -> {
//今日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToDate(), time.timestampToDate()
+ devCode, time.timestampToDate(), time.timestampToDate()
)
}
5 -> {
@@ -99,7 +100,7 @@
DateSelectDialog.OnDialogButtonClickListener {
override fun onConfirmClick(startDate: String, endDate: String) {
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, endDate
+ devCode, startDate, endDate
)
}
@@ -122,50 +123,35 @@
deviceViewModel.historyDataModel.observe(this, {
if (it.code == 200) {
//两条线,电量和浓度线
- val xAxisLabel: MutableList = ArrayList()
- val entryModels: MutableList = ArrayList()
+ val xAxisLabels: MutableList = ArrayList()
- val entryModel = LineChartEntryModel()
+ val strengthEntryModel = LineChartEntryModel()
+ val cellEntryModel = LineChartEntryModel()
//每个entries都是一条折线
- val entries: ArrayList = ArrayList()
- val colors: ArrayList = ArrayList()
- it.data!!.rows.forEachIndexed { i, rowsBean ->
-// {
-// "deviceType":"12",
-// "deptName":"燃气集团总公司",
-// "devcode":"342021000001",
-// "strength":"0.00",
-// "wellCode":"test001",
-// "deptid":"24",
-// "deviceTypeName":"管盯",
-// "cell":"100",
-// "descn":"",
-// "logtime":"2022-06-25 10:39:47",
-// "uptime":"2022-06-25 10:27:00"
-// }
-
+ val strengthEntries: ArrayList = ArrayList()
+ val cellEntries: ArrayList = ArrayList()
+ it.data!!.forEachIndexed { i, rowsBean ->
// x 轴坐标
- val split = rowsBean.uptime.toString().split(" ")
- xAxisLabel.add(split[1])
-
- //电量线
- colors.add(R.color.greenColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "电量")
- )
-
+ // 2022-07-06 16:41:00 需要改为 07-06
+ xAxisLabels.add(rowsBean.uptime.dateToMonthDay())
//浓度线
- colors.add(R.color.redTextColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.strength!!.toFloat(), "浓度")
+ strengthEntries.add(
+ Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度")
+ )
+
+ //电量线
+ cellEntries.add(
+ Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量")
)
}
- entryModel.lineColors = colors
- entryModel.entryList = entries
- entryModels.add(entryModel)
+ strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this)
+ strengthEntryModel.entries = strengthEntries
+ ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel)
- ChartViewHelper.setLineChartData(dataLineChart, xAxisLabel, entryModels)
+ cellEntryModel.lineColor = R.color.greenColor.convertColor(this)
+ cellEntryModel.entries = cellEntries
+ ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel)
}
})
}
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
index 83458ab..8a287d4 100644
--- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
@@ -130,10 +130,18 @@
deviceAdapter.setOnItemClickListener(object :
DeviceListAdapter.OnItemClickListener {
override fun onClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].tubeId)
}
override fun onHistoryClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].devcode)
}
})
diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
index 694aff6..292f041 100644
--- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
@@ -4,6 +4,7 @@
import android.widget.AdapterView
import androidx.lifecycle.ViewModelProvider
import com.casic.smarttube.R
+import com.casic.smarttube.extensions.dateToMonthDay
import com.casic.smarttube.extensions.getQuarterOfYear
import com.casic.smarttube.model.LineChartEntryModel
import com.casic.smarttube.utils.ChartViewHelper
@@ -13,17 +14,16 @@
import com.gyf.immersionbar.ImmersionBar
import com.jzxiang.pickerview.data.Type
import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.timestampToDate
-import com.pengxh.kt.lite.extensions.timestampToLastMonthDate
-import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.*
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import kotlinx.android.synthetic.main.activity_history_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
import java.util.*
class HistoryDataActivity : KotlinBaseActivity() {
+ private val kTag = "HistoryDataActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var devCode: String
@@ -32,6 +32,7 @@
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).init()
ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "历史数据"
leftBackView.setOnClickListener { finish() }
}
@@ -55,7 +56,7 @@
0 -> {
//本年度
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, "$year-01-01", time.timestampToDate()
+ devCode, "$year-01-01", time.timestampToDate()
)
}
1 -> {
@@ -68,25 +69,25 @@
else -> ""
}
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, time.timestampToDate()
+ devCode, startDate, time.timestampToDate()
)
}
2 -> {
//近30日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastMonthDate(), time.timestampToDate()
+ devCode, time.timestampToLastMonthDate(), time.timestampToDate()
)
}
3 -> {
//近7日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastWeekDate(), time.timestampToDate()
+ devCode, time.timestampToLastWeekDate(), time.timestampToDate()
)
}
4 -> {
//今日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToDate(), time.timestampToDate()
+ devCode, time.timestampToDate(), time.timestampToDate()
)
}
5 -> {
@@ -99,7 +100,7 @@
DateSelectDialog.OnDialogButtonClickListener {
override fun onConfirmClick(startDate: String, endDate: String) {
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, endDate
+ devCode, startDate, endDate
)
}
@@ -122,50 +123,35 @@
deviceViewModel.historyDataModel.observe(this, {
if (it.code == 200) {
//两条线,电量和浓度线
- val xAxisLabel: MutableList = ArrayList()
- val entryModels: MutableList = ArrayList()
+ val xAxisLabels: MutableList = ArrayList()
- val entryModel = LineChartEntryModel()
+ val strengthEntryModel = LineChartEntryModel()
+ val cellEntryModel = LineChartEntryModel()
//每个entries都是一条折线
- val entries: ArrayList = ArrayList()
- val colors: ArrayList = ArrayList()
- it.data!!.rows.forEachIndexed { i, rowsBean ->
-// {
-// "deviceType":"12",
-// "deptName":"燃气集团总公司",
-// "devcode":"342021000001",
-// "strength":"0.00",
-// "wellCode":"test001",
-// "deptid":"24",
-// "deviceTypeName":"管盯",
-// "cell":"100",
-// "descn":"",
-// "logtime":"2022-06-25 10:39:47",
-// "uptime":"2022-06-25 10:27:00"
-// }
-
+ val strengthEntries: ArrayList = ArrayList()
+ val cellEntries: ArrayList = ArrayList()
+ it.data!!.forEachIndexed { i, rowsBean ->
// x 轴坐标
- val split = rowsBean.uptime.toString().split(" ")
- xAxisLabel.add(split[1])
-
- //电量线
- colors.add(R.color.greenColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "电量")
- )
-
+ // 2022-07-06 16:41:00 需要改为 07-06
+ xAxisLabels.add(rowsBean.uptime.dateToMonthDay())
//浓度线
- colors.add(R.color.redTextColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.strength!!.toFloat(), "浓度")
+ strengthEntries.add(
+ Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度")
+ )
+
+ //电量线
+ cellEntries.add(
+ Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量")
)
}
- entryModel.lineColors = colors
- entryModel.entryList = entries
- entryModels.add(entryModel)
+ strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this)
+ strengthEntryModel.entries = strengthEntries
+ ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel)
- ChartViewHelper.setLineChartData(dataLineChart, xAxisLabel, entryModels)
+ cellEntryModel.lineColor = R.color.greenColor.convertColor(this)
+ cellEntryModel.entries = cellEntries
+ ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel)
}
})
}
diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
index 1541eb4..84e8885 100644
--- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
+++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
@@ -6,7 +6,6 @@
import com.casic.smarttube.extensions.toErrorMessage
import com.casic.smarttube.model.DeviceDetailModel
import com.casic.smarttube.model.DeviceHistoryDataModel
-import com.casic.smarttube.model.DeviceListModel
import com.casic.smarttube.model.MapDeviceModel
import com.casic.smarttube.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -54,16 +53,12 @@
it.printStackTrace()
})
- fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
- ) = launch({
- val response = RetrofitServiceManager.obtainDeviceHistoryData(
- deptid, keywords, beginTime, endTime
- )
+ fun obtainDeviceHistoryData(devcode: String, beginTime: String?, endTime: String?) = launch({
+ val response = RetrofitServiceManager.obtainDeviceHistoryData(devcode, beginTime, endTime)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
historyDataModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
index 83458ab..8a287d4 100644
--- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
@@ -130,10 +130,18 @@
deviceAdapter.setOnItemClickListener(object :
DeviceListAdapter.OnItemClickListener {
override fun onClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].tubeId)
}
override fun onHistoryClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].devcode)
}
})
diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
index 694aff6..292f041 100644
--- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
@@ -4,6 +4,7 @@
import android.widget.AdapterView
import androidx.lifecycle.ViewModelProvider
import com.casic.smarttube.R
+import com.casic.smarttube.extensions.dateToMonthDay
import com.casic.smarttube.extensions.getQuarterOfYear
import com.casic.smarttube.model.LineChartEntryModel
import com.casic.smarttube.utils.ChartViewHelper
@@ -13,17 +14,16 @@
import com.gyf.immersionbar.ImmersionBar
import com.jzxiang.pickerview.data.Type
import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.timestampToDate
-import com.pengxh.kt.lite.extensions.timestampToLastMonthDate
-import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.*
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import kotlinx.android.synthetic.main.activity_history_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
import java.util.*
class HistoryDataActivity : KotlinBaseActivity() {
+ private val kTag = "HistoryDataActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var devCode: String
@@ -32,6 +32,7 @@
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).init()
ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "历史数据"
leftBackView.setOnClickListener { finish() }
}
@@ -55,7 +56,7 @@
0 -> {
//本年度
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, "$year-01-01", time.timestampToDate()
+ devCode, "$year-01-01", time.timestampToDate()
)
}
1 -> {
@@ -68,25 +69,25 @@
else -> ""
}
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, time.timestampToDate()
+ devCode, startDate, time.timestampToDate()
)
}
2 -> {
//近30日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastMonthDate(), time.timestampToDate()
+ devCode, time.timestampToLastMonthDate(), time.timestampToDate()
)
}
3 -> {
//近7日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastWeekDate(), time.timestampToDate()
+ devCode, time.timestampToLastWeekDate(), time.timestampToDate()
)
}
4 -> {
//今日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToDate(), time.timestampToDate()
+ devCode, time.timestampToDate(), time.timestampToDate()
)
}
5 -> {
@@ -99,7 +100,7 @@
DateSelectDialog.OnDialogButtonClickListener {
override fun onConfirmClick(startDate: String, endDate: String) {
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, endDate
+ devCode, startDate, endDate
)
}
@@ -122,50 +123,35 @@
deviceViewModel.historyDataModel.observe(this, {
if (it.code == 200) {
//两条线,电量和浓度线
- val xAxisLabel: MutableList = ArrayList()
- val entryModels: MutableList = ArrayList()
+ val xAxisLabels: MutableList = ArrayList()
- val entryModel = LineChartEntryModel()
+ val strengthEntryModel = LineChartEntryModel()
+ val cellEntryModel = LineChartEntryModel()
//每个entries都是一条折线
- val entries: ArrayList = ArrayList()
- val colors: ArrayList = ArrayList()
- it.data!!.rows.forEachIndexed { i, rowsBean ->
-// {
-// "deviceType":"12",
-// "deptName":"燃气集团总公司",
-// "devcode":"342021000001",
-// "strength":"0.00",
-// "wellCode":"test001",
-// "deptid":"24",
-// "deviceTypeName":"管盯",
-// "cell":"100",
-// "descn":"",
-// "logtime":"2022-06-25 10:39:47",
-// "uptime":"2022-06-25 10:27:00"
-// }
-
+ val strengthEntries: ArrayList = ArrayList()
+ val cellEntries: ArrayList = ArrayList()
+ it.data!!.forEachIndexed { i, rowsBean ->
// x 轴坐标
- val split = rowsBean.uptime.toString().split(" ")
- xAxisLabel.add(split[1])
-
- //电量线
- colors.add(R.color.greenColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "电量")
- )
-
+ // 2022-07-06 16:41:00 需要改为 07-06
+ xAxisLabels.add(rowsBean.uptime.dateToMonthDay())
//浓度线
- colors.add(R.color.redTextColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.strength!!.toFloat(), "浓度")
+ strengthEntries.add(
+ Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度")
+ )
+
+ //电量线
+ cellEntries.add(
+ Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量")
)
}
- entryModel.lineColors = colors
- entryModel.entryList = entries
- entryModels.add(entryModel)
+ strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this)
+ strengthEntryModel.entries = strengthEntries
+ ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel)
- ChartViewHelper.setLineChartData(dataLineChart, xAxisLabel, entryModels)
+ cellEntryModel.lineColor = R.color.greenColor.convertColor(this)
+ cellEntryModel.entries = cellEntries
+ ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel)
}
})
}
diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
index 1541eb4..84e8885 100644
--- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
+++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
@@ -6,7 +6,6 @@
import com.casic.smarttube.extensions.toErrorMessage
import com.casic.smarttube.model.DeviceDetailModel
import com.casic.smarttube.model.DeviceHistoryDataModel
-import com.casic.smarttube.model.DeviceListModel
import com.casic.smarttube.model.MapDeviceModel
import com.casic.smarttube.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -54,16 +53,12 @@
it.printStackTrace()
})
- fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
- ) = launch({
- val response = RetrofitServiceManager.obtainDeviceHistoryData(
- deptid, keywords, beginTime, endTime
- )
+ fun obtainDeviceHistoryData(devcode: String, beginTime: String?, endTime: String?) = launch({
+ val response = RetrofitServiceManager.obtainDeviceHistoryData(devcode, beginTime, endTime)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
historyDataModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
index c1f0c1d..ca0bddd 100644
--- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
+++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
@@ -13,6 +13,7 @@
class LineChartMarkerView(context: Context?) :
MarkerView(context, R.layout.popu_line_chart_marker) {
+ private val kTag = "LineChartMarkerView"
private val decimalFormat = DecimalFormat("##0.0")
private val dayView: TextView = findViewById(R.id.dayView)
private val dataView: TextView = findViewById(R.id.dataView)
@@ -27,10 +28,13 @@
super.refreshContent(e, highlight)
val data = e.data as String
try {
- dataView.text = String.format("数据:${decimalFormat.format(e.y.toString().toDouble())}t")
+ when (data) {
+ "浓度" -> dataView.text = "浓度:${e.y}%"
+ "设备电量" -> dataView.text = String.format("设备电量:${e.y.toInt()}")
+ }
dayView.text = xAxisDate[(e.x).toInt()]
- } catch (e1: Exception) {
- e1.printStackTrace()
+ } catch (e: Exception) {
+ e.printStackTrace()
}
super.refreshContent(e, highlight)
}
diff --git a/app/build.gradle b/app/build.gradle
index 989a8ec..da5584a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,9 +48,9 @@
dependencies {
//基础依赖库
implementation files('libs/lite-release.aar')
- implementation 'androidx.core:core-ktx:1.7.0'
+ implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
- implementation 'com.google.android.material:material:1.4.0'
+ implementation 'com.google.android.material:material:1.6.1'
//Google官方授权框架
implementation 'pub.devrel:easypermissions:3.0.0'
//沉浸式状态栏。基础依赖包,必须要依赖
@@ -62,12 +62,12 @@
implementation 'com.qmuiteam:arch:0.3.1'
//MVVM+LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1"
- implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
+ implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
//Kotlin协程
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
- implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
//图片加载框架
implementation 'com.github.bumptech.glide:glide:4.9.0'
//图片选择框架
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d8ef3b..be29277 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,9 +43,7 @@
-
+
diff --git a/app/src/main/java/com/casic/smarttube/extensions/String.kt b/app/src/main/java/com/casic/smarttube/extensions/String.kt
index a6b2d58..32358e3 100644
--- a/app/src/main/java/com/casic/smarttube/extensions/String.kt
+++ b/app/src/main/java/com/casic/smarttube/extensions/String.kt
@@ -5,8 +5,11 @@
import com.casic.smarttube.utils.LocaleConstant
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
+import com.pengxh.kt.lite.extensions.dateToTimestamp
import com.pengxh.kt.lite.utils.SaveKeyValues
import org.json.JSONObject
+import java.text.SimpleDateFormat
+import java.util.*
/**
* String扩展方法
@@ -62,4 +65,13 @@
e.printStackTrace()
}
return R.drawable.ic_battery_0
+}
+
+/**
+ * 时间转月日
+ */
+fun String.dateToMonthDay(): String {
+ val timestamp = this.dateToTimestamp()
+ val dateFormat = SimpleDateFormat("MM-dd", Locale.CHINA)
+ return dateFormat.format(Date(timestamp))
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
index f4096ea..f0463fc 100644
--- a/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/DeviceHistoryDataModel.java
@@ -5,9 +5,9 @@
public class DeviceHistoryDataModel {
private int code;
- private DataBean data;
+ private List data;
private String message;
- private boolean success;
+ private String success;
public int getCode() {
return code;
@@ -17,11 +17,11 @@
this.code = code;
}
- public DataBean getData() {
+ public List getData() {
return data;
}
- public void setData(DataBean data) {
+ public void setData(List data) {
this.data = data;
}
@@ -33,134 +33,95 @@
this.message = message;
}
- public boolean isSuccess() {
+ public String getSuccess() {
return success;
}
- public void setSuccess(boolean success) {
+ public void setSuccess(String success) {
this.success = success;
}
public static class DataBean {
- private List rows;
- private int total;
+ private String devcode;
+ private String wellCode;
+ private String snr;
+ private String pci;
+ private String rsrp;
+ private String id;
+ private String cell;
+ private String stregnth;
+ private String uptime;
- public List getRows() {
- return rows;
+ public String getDevcode() {
+ return devcode;
}
- public void setRows(List rows) {
- this.rows = rows;
+ public void setDevcode(String devcode) {
+ this.devcode = devcode;
}
- public int getTotal() {
- return total;
+ public String getWellCode() {
+ return wellCode;
}
- public void setTotal(int total) {
- this.total = total;
+ public void setWellCode(String wellCode) {
+ this.wellCode = wellCode;
}
- public static class RowsBean {
- private String deviceType;
- private String deptName;
- private String devcode;
- private String strength;
- private String wellCode;
- private String deptid;
- private String deviceTypeName;
- private String cell;
- private String descn;
- private String logtime;
- private String uptime;
+ public String getSnr() {
+ return snr;
+ }
- public String getDeviceType() {
- return deviceType;
- }
+ public void setSnr(String snr) {
+ this.snr = snr;
+ }
- public void setDeviceType(String deviceType) {
- this.deviceType = deviceType;
- }
+ public String getPci() {
+ return pci;
+ }
- public String getDeptName() {
- return deptName;
- }
+ public void setPci(String pci) {
+ this.pci = pci;
+ }
- public void setDeptName(String deptName) {
- this.deptName = deptName;
- }
+ public String getRsrp() {
+ return rsrp;
+ }
- public String getDevcode() {
- return devcode;
- }
+ public void setRsrp(String rsrp) {
+ this.rsrp = rsrp;
+ }
- public void setDevcode(String devcode) {
- this.devcode = devcode;
- }
+ public String getId() {
+ return id;
+ }
- public String getStrength() {
- return strength;
- }
+ public void setId(String id) {
+ this.id = id;
+ }
- public void setStrength(String strength) {
- this.strength = strength;
- }
+ public String getCell() {
+ return cell;
+ }
- public String getWellCode() {
- return wellCode;
- }
+ public void setCell(String cell) {
+ this.cell = cell;
+ }
- public void setWellCode(String wellCode) {
- this.wellCode = wellCode;
- }
+ public String getStregnth() {
+ return stregnth;
+ }
- public String getDeptid() {
- return deptid;
- }
+ public void setStregnth(String stregnth) {
+ this.stregnth = stregnth;
+ }
- public void setDeptid(String deptid) {
- this.deptid = deptid;
- }
+ public String getUptime() {
+ return uptime;
+ }
- public String getDeviceTypeName() {
- return deviceTypeName;
- }
-
- public void setDeviceTypeName(String deviceTypeName) {
- this.deviceTypeName = deviceTypeName;
- }
-
- public String getCell() {
- return cell;
- }
-
- public void setCell(String cell) {
- this.cell = cell;
- }
-
- public String getDescn() {
- return descn;
- }
-
- public void setDescn(String descn) {
- this.descn = descn;
- }
-
- public String getLogtime() {
- return logtime;
- }
-
- public void setLogtime(String logtime) {
- this.logtime = logtime;
- }
-
- public String getUptime() {
- return uptime;
- }
-
- public void setUptime(String uptime) {
- this.uptime = uptime;
- }
+ public void setUptime(String uptime) {
+ this.uptime = uptime;
}
}
}
diff --git a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
index 5fe5c55..bef5a6c 100644
--- a/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
+++ b/app/src/main/java/com/casic/smarttube/model/LineChartEntryModel.java
@@ -6,23 +6,23 @@
public class LineChartEntryModel {
//折线数据
- private List entryList;
+ private List entries;
//折线颜色
- private List lineColors;
+ private Integer lineColor;
- public List getEntryList() {
- return entryList;
+ public List getEntries() {
+ return entries;
}
- public void setEntryList(List entryList) {
- this.entryList = entryList;
+ public void setEntries(List entries) {
+ this.entries = entries;
}
- public List getLineColors() {
- return lineColors;
+ public Integer getLineColor() {
+ return lineColor;
}
- public void setLineColors(List lineColors) {
- this.lineColors = lineColors;
+ public void setLineColor(Integer lineColor) {
+ this.lineColor = lineColor;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
index 2b32974..acde78f 100644
--- a/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/ChartViewHelper.kt
@@ -22,35 +22,28 @@
* 折线图
* */
fun setLineChartData(
- chart: LineChart, xAxisDate: MutableList, entryModels: List
+ chart: LineChart, xAxisDate: MutableList, entryModel: LineChartEntryModel
) {
//每次加载数据都初始化折线图
chart.init(BaseApplication.obtainInstance())
- //[{"entryList":[],"lineColor":-13118290}]
- if (entryModels[0].entryList?.isEmpty() == true) {
+ if (entryModel.entries.isEmpty()) {
chart.clearValues()
return
}
//绑定数据
val lineDataSets: MutableList = ArrayList()
- val entrySize = entryModels[0].entryList!!.size
- entryModels.forEachIndexed { index, it ->
- //设置数据
- val dataSet = if (entrySize == 1) {
- LineDataSet(it.entryList, it.entryList?.get(0)?.data.toString())
- } else {
- LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
- }
- dataSet.setDrawCircles(true)
- //线条颜色
- dataSet.color = it.lineColors[index]
- //圆点颜色
- dataSet.setCircleColor(it.lineColors[index])
- dataSet.setDrawFilled(true)
- dataSet.fillColor = it.lineColors[index]
- dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
- lineDataSets.add(dataSet)
- }
+ //设置数据
+ val dataSet = LineDataSet(entryModel.entries, entryModel.entries[0].data.toString())
+ dataSet.setDrawCircles(true)
+ //线条颜色
+ dataSet.color = entryModel.lineColor
+ //圆点颜色
+ dataSet.setCircleColor(entryModel.lineColor)
+ dataSet.setDrawFilled(true)
+ dataSet.fillColor = entryModel.lineColor
+ dataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+ lineDataSets.add(dataSet)
+
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
//添加自定义Marker
@@ -60,17 +53,10 @@
chart.marker = markerView
//设置X轴坐标
val xAxis = chart.xAxis
- xAxis.valueFormatter = if (entrySize == 1) {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[0]
- }
- }
- } else {
- object : ValueFormatter() {
- override fun getFormattedValue(value: Float): String {
- return xAxisDate[value.toInt()]
- }
+ xAxis.labelRotationAngle = -45f
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
}
}
chart.data = lineData
diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
index 2affba5..4908afb 100644
--- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt
@@ -41,8 +41,8 @@
* =============================================================================================
* */
const val USER_DETAIL_MODEL = "userDetailModel"
- const val SERVER_BASE_URL = "http://192.168.43.19:11643"
-// const val SERVER_BASE_URL = "http://111.198.10.15:11304"
+// const val SERVER_BASE_URL = "http://192.168.43.19:11643"
+ const val SERVER_BASE_URL = "http://111.198.10.15:11304"
const val DEFAULT_SERVER_CONFIG = "defaultServerConfig"
const val ACCOUNT = "account"
const val PASSWORD = "password"
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
index bd223b1..c1205c8 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitService.kt
@@ -159,19 +159,14 @@
): String
/**
- * 获取管盯分页列表
+ * 获取管盯历史数据
* */
- @GET("/tubedata/list")
+ @GET("/tube/groupdevice/history")
suspend fun obtainDeviceHistoryData(
@Header("token") token: String,
- @Query("deptid") deptid: String?,
- @Query("keywords") keywords: String?,
+ @Query("devcode") devcode: String?,
@Query("beginTime") beginTime: String?,
- @Query("endTime") endTime: String?,
- @Query("sort") sort: String?,
- @Query("order") order: String?,
- @Query("offset") offset: Int,
- @Query("limit") limit: Int
+ @Query("endTime") endTime: String?
): String
/**
diff --git a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
index 8bc44d8..a18a820 100644
--- a/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/smarttube/utils/retrofit/RetrofitServiceManager.kt
@@ -130,11 +130,10 @@
* 根据设备编号获取历史数据
*/
suspend fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
+ devcode: String, beginTime: String?, endTime: String?
): String {
return api.obtainDeviceHistoryData(
- AuthenticationHelper.token!!, deptid, keywords, beginTime, endTime,
- "", "", 1, 1000
+ AuthenticationHelper.token!!, devcode, beginTime, endTime
)
}
diff --git a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
index 83458ab..8a287d4 100644
--- a/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/GroupDeviceActivity.kt
@@ -130,10 +130,18 @@
deviceAdapter.setOnItemClickListener(object :
DeviceListAdapter.OnItemClickListener {
override fun onClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历设备详情".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].tubeId)
}
override fun onHistoryClicked(position: Int) {
+ if (dataBeans[position].devcode.isNullOrBlank()) {
+ "设备编号为空,无法查看历史数据".show(this@GroupDeviceActivity)
+ return
+ }
navigatePageTo(dataBeans[position].devcode)
}
})
diff --git a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
index 694aff6..292f041 100644
--- a/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
+++ b/app/src/main/java/com/casic/smarttube/view/HistoryDataActivity.kt
@@ -4,6 +4,7 @@
import android.widget.AdapterView
import androidx.lifecycle.ViewModelProvider
import com.casic.smarttube.R
+import com.casic.smarttube.extensions.dateToMonthDay
import com.casic.smarttube.extensions.getQuarterOfYear
import com.casic.smarttube.model.LineChartEntryModel
import com.casic.smarttube.utils.ChartViewHelper
@@ -13,17 +14,16 @@
import com.gyf.immersionbar.ImmersionBar
import com.jzxiang.pickerview.data.Type
import com.pengxh.kt.lite.base.KotlinBaseActivity
-import com.pengxh.kt.lite.extensions.convertColor
-import com.pengxh.kt.lite.extensions.timestampToDate
-import com.pengxh.kt.lite.extensions.timestampToLastMonthDate
-import com.pengxh.kt.lite.extensions.timestampToLastWeekDate
+import com.pengxh.kt.lite.extensions.*
import com.pengxh.kt.lite.utils.Constant
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import kotlinx.android.synthetic.main.activity_history_data.*
+import kotlinx.android.synthetic.main.include_base_title.*
import java.util.*
class HistoryDataActivity : KotlinBaseActivity() {
+ private val kTag = "HistoryDataActivity"
private lateinit var deviceViewModel: DeviceViewModel
private lateinit var devCode: String
@@ -32,6 +32,7 @@
override fun setupTopBarLayout() {
ImmersionBar.with(this).statusBarDarkFont(false).init()
ImmerseStatusBarUtil.setColor(this, R.color.mainThemeColor.convertColor(this))
+ titleView.text = "历史数据"
leftBackView.setOnClickListener { finish() }
}
@@ -55,7 +56,7 @@
0 -> {
//本年度
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, "$year-01-01", time.timestampToDate()
+ devCode, "$year-01-01", time.timestampToDate()
)
}
1 -> {
@@ -68,25 +69,25 @@
else -> ""
}
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, time.timestampToDate()
+ devCode, startDate, time.timestampToDate()
)
}
2 -> {
//近30日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastMonthDate(), time.timestampToDate()
+ devCode, time.timestampToLastMonthDate(), time.timestampToDate()
)
}
3 -> {
//近7日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToLastWeekDate(), time.timestampToDate()
+ devCode, time.timestampToLastWeekDate(), time.timestampToDate()
)
}
4 -> {
//今日
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, time.timestampToDate(), time.timestampToDate()
+ devCode, time.timestampToDate(), time.timestampToDate()
)
}
5 -> {
@@ -99,7 +100,7 @@
DateSelectDialog.OnDialogButtonClickListener {
override fun onConfirmClick(startDate: String, endDate: String) {
deviceViewModel.obtainDeviceHistoryData(
- "", devCode, startDate, endDate
+ devCode, startDate, endDate
)
}
@@ -122,50 +123,35 @@
deviceViewModel.historyDataModel.observe(this, {
if (it.code == 200) {
//两条线,电量和浓度线
- val xAxisLabel: MutableList = ArrayList()
- val entryModels: MutableList = ArrayList()
+ val xAxisLabels: MutableList = ArrayList()
- val entryModel = LineChartEntryModel()
+ val strengthEntryModel = LineChartEntryModel()
+ val cellEntryModel = LineChartEntryModel()
//每个entries都是一条折线
- val entries: ArrayList = ArrayList()
- val colors: ArrayList = ArrayList()
- it.data!!.rows.forEachIndexed { i, rowsBean ->
-// {
-// "deviceType":"12",
-// "deptName":"燃气集团总公司",
-// "devcode":"342021000001",
-// "strength":"0.00",
-// "wellCode":"test001",
-// "deptid":"24",
-// "deviceTypeName":"管盯",
-// "cell":"100",
-// "descn":"",
-// "logtime":"2022-06-25 10:39:47",
-// "uptime":"2022-06-25 10:27:00"
-// }
-
+ val strengthEntries: ArrayList = ArrayList()
+ val cellEntries: ArrayList = ArrayList()
+ it.data!!.forEachIndexed { i, rowsBean ->
// x 轴坐标
- val split = rowsBean.uptime.toString().split(" ")
- xAxisLabel.add(split[1])
-
- //电量线
- colors.add(R.color.greenColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "电量")
- )
-
+ // 2022-07-06 16:41:00 需要改为 07-06
+ xAxisLabels.add(rowsBean.uptime.dateToMonthDay())
//浓度线
- colors.add(R.color.redTextColor.convertColor(this))
- entries.add(
- Entry(i.toFloat(), rowsBean.strength!!.toFloat(), "浓度")
+ strengthEntries.add(
+ Entry(i.toFloat(), rowsBean.stregnth!!.toFloat(), "浓度")
+ )
+
+ //电量线
+ cellEntries.add(
+ Entry(i.toFloat(), rowsBean.cell!!.toFloat(), "设备电量")
)
}
- entryModel.lineColors = colors
- entryModel.entryList = entries
- entryModels.add(entryModel)
+ strengthEntryModel.lineColor = R.color.redTextColor.convertColor(this)
+ strengthEntryModel.entries = strengthEntries
+ ChartViewHelper.setLineChartData(dataLineChart, xAxisLabels, strengthEntryModel)
- ChartViewHelper.setLineChartData(dataLineChart, xAxisLabel, entryModels)
+ cellEntryModel.lineColor = R.color.greenColor.convertColor(this)
+ cellEntryModel.entries = cellEntries
+ ChartViewHelper.setLineChartData(batteryDataChart, xAxisLabels, cellEntryModel)
}
})
}
diff --git a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
index 1541eb4..84e8885 100644
--- a/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
+++ b/app/src/main/java/com/casic/smarttube/vm/DeviceViewModel.kt
@@ -6,7 +6,6 @@
import com.casic.smarttube.extensions.toErrorMessage
import com.casic.smarttube.model.DeviceDetailModel
import com.casic.smarttube.model.DeviceHistoryDataModel
-import com.casic.smarttube.model.DeviceListModel
import com.casic.smarttube.model.MapDeviceModel
import com.casic.smarttube.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -54,16 +53,12 @@
it.printStackTrace()
})
- fun obtainDeviceHistoryData(
- deptid: String, keywords: String, beginTime: String?, endTime: String?
- ) = launch({
- val response = RetrofitServiceManager.obtainDeviceHistoryData(
- deptid, keywords, beginTime, endTime
- )
+ fun obtainDeviceHistoryData(devcode: String, beginTime: String?, endTime: String?) = launch({
+ val response = RetrofitServiceManager.obtainDeviceHistoryData(devcode, beginTime, endTime)
val responseCode = response.separateResponseCode()
if (responseCode == 200) {
historyDataModel.value = gson.fromJson(
- response, object : TypeToken() {}.type
+ response, object : TypeToken() {}.type
)
} else {
response.toErrorMessage().show(BaseApplication.obtainInstance())
diff --git a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
index c1f0c1d..ca0bddd 100644
--- a/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
+++ b/app/src/main/java/com/casic/smarttube/widgets/LineChartMarkerView.kt
@@ -13,6 +13,7 @@
class LineChartMarkerView(context: Context?) :
MarkerView(context, R.layout.popu_line_chart_marker) {
+ private val kTag = "LineChartMarkerView"
private val decimalFormat = DecimalFormat("##0.0")
private val dayView: TextView = findViewById(R.id.dayView)
private val dataView: TextView = findViewById(R.id.dataView)
@@ -27,10 +28,13 @@
super.refreshContent(e, highlight)
val data = e.data as String
try {
- dataView.text = String.format("数据:${decimalFormat.format(e.y.toString().toDouble())}t")
+ when (data) {
+ "浓度" -> dataView.text = "浓度:${e.y}%"
+ "设备电量" -> dataView.text = String.format("设备电量:${e.y.toInt()}")
+ }
dayView.text = xAxisDate[(e.x).toInt()]
- } catch (e1: Exception) {
- e1.printStackTrace()
+ } catch (e: Exception) {
+ e.printStackTrace()
}
super.refreshContent(e, highlight)
}
diff --git a/app/src/main/res/layout/activity_history_data.xml b/app/src/main/res/layout/activity_history_data.xml
index d65443d..28e5366 100644
--- a/app/src/main/res/layout/activity_history_data.xml
+++ b/app/src/main/res/layout/activity_history_data.xml
@@ -7,43 +7,59 @@
android:orientation="vertical"
tools:context=".view.HistoryDataActivity">
+
+
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingHorizontal="@dimen/dp_10">
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
-
-
-
-
\ No newline at end of file