diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
index ab9e82a..dfd8d42 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
@@ -12,6 +12,7 @@
import com.casic.dcms.mvvm.view.fragment.LightOnMapFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -40,8 +41,9 @@
//绑定TabLayout
viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager);
LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0);
- linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
+ linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f));
}
@Override
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
index ab9e82a..dfd8d42 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
@@ -12,6 +12,7 @@
import com.casic.dcms.mvvm.view.fragment.LightOnMapFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -40,8 +41,9 @@
//绑定TabLayout
viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager);
LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0);
- linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
+ linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f));
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
index e8139ed..9ae249d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
@@ -10,6 +10,7 @@
import com.google.gson.reflect.TypeToken;
import com.pengxh.androidx.lite.callback.OnObserverCallback;
import com.pengxh.androidx.lite.vm.BaseViewModel;
+import com.pengxh.androidx.lite.vm.LoadState;
import com.pengxh.androidx.lite.vm.ObserverSubscriber;
import java.io.IOException;
@@ -23,16 +24,17 @@
public MutableLiveData highEventModel = new MutableLiveData<>();
public void obtainEventSource(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
@Override
public void onCompleted() {
-
+ loadState.setValue(LoadState.Success);
}
@Override
public void onError(Throwable e) {
-
+ loadState.setValue(LoadState.Fail);
}
@Override
@@ -44,6 +46,8 @@
EventSourceBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
eventSourceModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
index ab9e82a..dfd8d42 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
@@ -12,6 +12,7 @@
import com.casic.dcms.mvvm.view.fragment.LightOnMapFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -40,8 +41,9 @@
//绑定TabLayout
viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager);
LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0);
- linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
+ linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f));
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
index e8139ed..9ae249d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
@@ -10,6 +10,7 @@
import com.google.gson.reflect.TypeToken;
import com.pengxh.androidx.lite.callback.OnObserverCallback;
import com.pengxh.androidx.lite.vm.BaseViewModel;
+import com.pengxh.androidx.lite.vm.LoadState;
import com.pengxh.androidx.lite.vm.ObserverSubscriber;
import java.io.IOException;
@@ -23,16 +24,17 @@
public MutableLiveData highEventModel = new MutableLiveData<>();
public void obtainEventSource(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
@Override
public void onCompleted() {
-
+ loadState.setValue(LoadState.Success);
}
@Override
public void onError(Throwable e) {
-
+ loadState.setValue(LoadState.Fail);
}
@Override
@@ -44,6 +46,8 @@
EventSourceBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
eventSourceModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
index ac44a3b..6efeb42 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -227,7 +227,6 @@
chart.getDescription().setEnabled(false);
chart.setDragDecelerationFrictionCoef(0.95f);//图表转动阻力摩擦系数[0,1]
chart.setBackgroundColor(Color.WHITE); //设置图表背景色
- chart.setRotationAngle(0f);
chart.setRotationEnabled(true);
chart.setHighlightPerTapEnabled(true);
chart.animateY(1200, Easing.EaseInOutQuad);// 设置图表展示动画效果
@@ -237,19 +236,16 @@
chart.setEntryLabelColor(Color.BLUE);//图表文本字体颜色
chart.setEntryLabelTextSize(12f);
//设置图表上下左右的偏移,类似于外边距,可以控制饼图大小
- chart.setExtraOffsets(13, 13, 13, 13);
+ chart.setExtraOffsets(0, 5, 0, 5);
//设置图例位置
Legend legend = chart.getLegend();
- legend.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);
- legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
- legend.setOrientation(Legend.LegendOrientation.VERTICAL);
- legend.setFormSize(12f);
- legend.setFormToTextSpace(8f);
- legend.setTextSize(12f);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
}
public static void setPieChartData(PieChart chart, List entries) {
- PieDataSet dataSet = new PieDataSet(entries, "案卷总览");
+ PieDataSet dataSet = new PieDataSet(entries, "");
dataSet.setSliceSpace(3f);//设置饼状块之间的间隙
dataSet.setSelectionShift(5f);//设置饼状块被选中时突出的距离
//设置饼图块颜色
@@ -262,8 +258,8 @@
dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
- dataSet.setValueLinePart1Length(0.55f);//标签指示线前半截长度
- dataSet.setValueLinePart2Length(0.55f);//标签指示线后半截长度
+ dataSet.setValueLinePart1Length(0.75f);//标签指示线前半截长度
+ dataSet.setValueLinePart2Length(0.35f);//标签指示线后半截长度
PieData data = new PieData(dataSet);
data.setValueFormatter(new ValueFormatter() {
@Override
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
index ab9e82a..dfd8d42 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
@@ -12,6 +12,7 @@
import com.casic.dcms.mvvm.view.fragment.LightOnMapFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -40,8 +41,9 @@
//绑定TabLayout
viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager);
LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0);
- linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
+ linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f));
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
index e8139ed..9ae249d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
@@ -10,6 +10,7 @@
import com.google.gson.reflect.TypeToken;
import com.pengxh.androidx.lite.callback.OnObserverCallback;
import com.pengxh.androidx.lite.vm.BaseViewModel;
+import com.pengxh.androidx.lite.vm.LoadState;
import com.pengxh.androidx.lite.vm.ObserverSubscriber;
import java.io.IOException;
@@ -23,16 +24,17 @@
public MutableLiveData highEventModel = new MutableLiveData<>();
public void obtainEventSource(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
@Override
public void onCompleted() {
-
+ loadState.setValue(LoadState.Success);
}
@Override
public void onError(Throwable e) {
-
+ loadState.setValue(LoadState.Fail);
}
@Override
@@ -44,6 +46,8 @@
EventSourceBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
eventSourceModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
index ac44a3b..6efeb42 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -227,7 +227,6 @@
chart.getDescription().setEnabled(false);
chart.setDragDecelerationFrictionCoef(0.95f);//图表转动阻力摩擦系数[0,1]
chart.setBackgroundColor(Color.WHITE); //设置图表背景色
- chart.setRotationAngle(0f);
chart.setRotationEnabled(true);
chart.setHighlightPerTapEnabled(true);
chart.animateY(1200, Easing.EaseInOutQuad);// 设置图表展示动画效果
@@ -237,19 +236,16 @@
chart.setEntryLabelColor(Color.BLUE);//图表文本字体颜色
chart.setEntryLabelTextSize(12f);
//设置图表上下左右的偏移,类似于外边距,可以控制饼图大小
- chart.setExtraOffsets(13, 13, 13, 13);
+ chart.setExtraOffsets(0, 5, 0, 5);
//设置图例位置
Legend legend = chart.getLegend();
- legend.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);
- legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
- legend.setOrientation(Legend.LegendOrientation.VERTICAL);
- legend.setFormSize(12f);
- legend.setFormToTextSpace(8f);
- legend.setTextSize(12f);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
}
public static void setPieChartData(PieChart chart, List entries) {
- PieDataSet dataSet = new PieDataSet(entries, "案卷总览");
+ PieDataSet dataSet = new PieDataSet(entries, "");
dataSet.setSliceSpace(3f);//设置饼状块之间的间隙
dataSet.setSelectionShift(5f);//设置饼状块被选中时突出的距离
//设置饼图块颜色
@@ -262,8 +258,8 @@
dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
- dataSet.setValueLinePart1Length(0.55f);//标签指示线前半截长度
- dataSet.setValueLinePart2Length(0.55f);//标签指示线后半截长度
+ dataSet.setValueLinePart1Length(0.75f);//标签指示线前半截长度
+ dataSet.setValueLinePart2Length(0.35f);//标签指示线后半截长度
PieData data = new PieData(dataSet);
data.setValueFormatter(new ValueFormatter() {
@Override
diff --git a/app/src/main/res/layout/activity_event_resource.xml b/app/src/main/res/layout/activity_event_resource.xml
index 068e657..91cb65a 100644
--- a/app/src/main/res/layout/activity_event_resource.xml
+++ b/app/src/main/res/layout/activity_event_resource.xml
@@ -9,44 +9,36 @@
android:id="@+id/titleBarLayout"
layout="@layout/include_option_plus_title" />
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="@dimen/dp_5">
-
+ android:layout_height="@dimen/dp_200"
+ android:elevation="10dp"
+ app:cardCornerRadius="5dp"
+ app:cardUseCompatPadding="true">
-
+ android:layout_height="match_parent" />
+
-
-
+
-
-
-
-
-
-
+ android:layout_height="wrap_content" />
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c582b0..d61ebf7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -34,12 +34,14 @@
+
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
index 9369460..f4236b4 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/EventSourceBean.java
@@ -9,19 +9,27 @@
**/
public class EventSourceBean {
- private double code;
+ private int code;
+ private List data;
private String message;
private boolean success;
- private List data;
- public double getCode() {
+ public int getCode() {
return code;
}
- public void setCode(double code) {
+ public void setCode(int code) {
this.code = code;
}
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
public String getMessage() {
return message;
}
@@ -38,16 +46,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
-
+ public static class DataDTO {
private String caseCode;
private String caseNum;
private String caseSource;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
index da5d85b..c181430 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/ExcelDataBean.java
@@ -11,16 +11,40 @@
@SmartTable(name = "问题来源统计表表")
public class ExcelDataBean {
- @SmartColumn(id = 0, name = "序号")
- private final int index;
- @SmartColumn(id = 1, name = "问题来源")
- private final String source;
- @SmartColumn(id = 2, name = "上报数量")
- private final int number;
+ @SmartColumn(id = 1, name = "序号")
+ private int index;
+ @SmartColumn(id = 2, name = "问题来源")
+ private String source;
+ @SmartColumn(id = 3, name = "上报数量")
+ private int number;
public ExcelDataBean(int index, String source, int number) {
this.index = index;
this.source = source;
this.number = number;
}
+
+ public int getIndex() {
+ return index;
+ }
+
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public int getNumber() {
+ return number;
+ }
+
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
index b82f6d5..c53319a 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/EventSourceActivity.java
@@ -17,6 +17,7 @@
import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
import com.casic.dcms.utils.ChartViewHelper;
import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.OtherUtils;
import com.casic.dcms.utils.TimeOrDateUtil;
import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
@@ -24,9 +25,9 @@
import com.jzxiang.pickerview.data.Type;
import com.jzxiang.pickerview.listener.OnDateSetListener;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.utils.ChartUtil;
import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.text.ParseException;
import java.util.ArrayList;
@@ -39,7 +40,7 @@
*/
public class EventSourceActivity extends AndroidxBaseActivity {
- private static final String TAG = EventSourceActivity.class.getSimpleName();
+ private static final String TAG = "EventSourceActivity";
private final Context context = EventSourceActivity.this;
private final List excelDataBeans = new ArrayList<>();
private final List pieEntries = new ArrayList<>();
@@ -68,7 +69,7 @@
//初始化表格
initTableConfig();
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.resourcePieChart);
+ ChartViewHelper.initPieChart(viewBinding.resourcePieChart);
analysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
analysisViewModel.obtainEventSource(date[0], date[1]);
}
@@ -121,14 +122,18 @@
@Override
public void onChanged(EventSourceBean resultBean) {
if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- EventSourceBean.DataBean dataBean = dataBeanList.get(i);
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size(); i++) {
+ EventSourceBean.DataDTO dataBean = dataBeanList.get(i);
+
+ String label = dataBean.getCaseSource().equals("--") ? "未知来源" : dataBean.getCaseSource();
+ int number = Integer.parseInt(dataBean.getEventNum()) + Integer.parseInt(dataBean.getComponentNum());
+ excelDataBeans.add(new ExcelDataBean(i, label, number));
+
String caseNum = dataBean.getCaseNum();
//表格数据需要把0的加进去,饼图不需要
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum)));
if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource()));
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), label));
}
}
viewBinding.resourceTableView.setData(excelDataBeans);
@@ -136,5 +141,15 @@
}
}
});
+ analysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ OtherUtils.showLoadingDialog(context, "获取数据中...");
+ } else {
+ OtherUtils.dismissLoadingDialog();
+ }
+ }
+ });
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
index ab9e82a..dfd8d42 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/StreetlightManagerActivity.java
@@ -12,6 +12,7 @@
import com.casic.dcms.mvvm.view.fragment.LightOnMapFragment;
import com.gyf.immersionbar.ImmersionBar;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.utils.DeviceSizeUtil;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -40,8 +41,9 @@
//绑定TabLayout
viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager);
LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0);
- linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
+ linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f));
}
@Override
diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
index e8139ed..9ae249d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/vm/DataAnalysisViewModel.java
@@ -10,6 +10,7 @@
import com.google.gson.reflect.TypeToken;
import com.pengxh.androidx.lite.callback.OnObserverCallback;
import com.pengxh.androidx.lite.vm.BaseViewModel;
+import com.pengxh.androidx.lite.vm.LoadState;
import com.pengxh.androidx.lite.vm.ObserverSubscriber;
import java.io.IOException;
@@ -23,16 +24,17 @@
public MutableLiveData highEventModel = new MutableLiveData<>();
public void obtainEventSource(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
@Override
public void onCompleted() {
-
+ loadState.setValue(LoadState.Success);
}
@Override
public void onError(Throwable e) {
-
+ loadState.setValue(LoadState.Fail);
}
@Override
@@ -44,6 +46,8 @@
EventSourceBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
eventSourceModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
index ac44a3b..6efeb42 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -227,7 +227,6 @@
chart.getDescription().setEnabled(false);
chart.setDragDecelerationFrictionCoef(0.95f);//图表转动阻力摩擦系数[0,1]
chart.setBackgroundColor(Color.WHITE); //设置图表背景色
- chart.setRotationAngle(0f);
chart.setRotationEnabled(true);
chart.setHighlightPerTapEnabled(true);
chart.animateY(1200, Easing.EaseInOutQuad);// 设置图表展示动画效果
@@ -237,19 +236,16 @@
chart.setEntryLabelColor(Color.BLUE);//图表文本字体颜色
chart.setEntryLabelTextSize(12f);
//设置图表上下左右的偏移,类似于外边距,可以控制饼图大小
- chart.setExtraOffsets(13, 13, 13, 13);
+ chart.setExtraOffsets(0, 5, 0, 5);
//设置图例位置
Legend legend = chart.getLegend();
- legend.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);
- legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
- legend.setOrientation(Legend.LegendOrientation.VERTICAL);
- legend.setFormSize(12f);
- legend.setFormToTextSpace(8f);
- legend.setTextSize(12f);
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
}
public static void setPieChartData(PieChart chart, List entries) {
- PieDataSet dataSet = new PieDataSet(entries, "案卷总览");
+ PieDataSet dataSet = new PieDataSet(entries, "");
dataSet.setSliceSpace(3f);//设置饼状块之间的间隙
dataSet.setSelectionShift(5f);//设置饼状块被选中时突出的距离
//设置饼图块颜色
@@ -262,8 +258,8 @@
dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
- dataSet.setValueLinePart1Length(0.55f);//标签指示线前半截长度
- dataSet.setValueLinePart2Length(0.55f);//标签指示线后半截长度
+ dataSet.setValueLinePart1Length(0.75f);//标签指示线前半截长度
+ dataSet.setValueLinePart2Length(0.35f);//标签指示线后半截长度
PieData data = new PieData(dataSet);
data.setValueFormatter(new ValueFormatter() {
@Override
diff --git a/app/src/main/res/layout/activity_event_resource.xml b/app/src/main/res/layout/activity_event_resource.xml
index 068e657..91cb65a 100644
--- a/app/src/main/res/layout/activity_event_resource.xml
+++ b/app/src/main/res/layout/activity_event_resource.xml
@@ -9,44 +9,36 @@
android:id="@+id/titleBarLayout"
layout="@layout/include_option_plus_title" />
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="@dimen/dp_5">
-
+ android:layout_height="@dimen/dp_200"
+ android:elevation="10dp"
+ app:cardCornerRadius="5dp"
+ app:cardUseCompatPadding="true">
-
+ android:layout_height="match_parent" />
+
-
-
+
-
-
-
-
-
-
+ android:layout_height="wrap_content" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_street_light.xml b/app/src/main/res/layout/activity_street_light.xml
index d1102d8..ae4fea7 100644
--- a/app/src/main/res/layout/activity_street_light.xml
+++ b/app/src/main/res/layout/activity_street_light.xml
@@ -12,6 +12,7 @@