diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
deleted file mode 100644
index 354950b..0000000
--- a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.casic.dcms.mvvm.view;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bin.david.form.core.TableConfig;
-import com.bin.david.form.data.style.FontStyle;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityHighEventBinding;
-import com.casic.dcms.mvvm.model.ExcelDataBean;
-import com.casic.dcms.mvvm.model.HighEventBean;
-import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
-import com.casic.dcms.utils.ChartViewHelper;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.utils.TimeOrDateUtil;
-import com.github.mikephil.charting.data.PieEntry;
-import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-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.ImmerseStatusBarUtil;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Pengxh
- * @time : 2021/4/16 8:44
- * @email : 290677893@qq.com
- */
-public class HighEventListActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "HighEventListActivity";
- private final Context context = HighEventListActivity.this;
- private final List excelDataBeans = new ArrayList<>();
- private final List pieEntries = new ArrayList<>();
- private String[] date = new String[0];
- private DataAnalysisViewModel dataAnalysisViewModel;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("高发问题");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- //默认显示当前月的数据
- long timeMillis = System.currentTimeMillis();
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
- try {
- date = TimeOrDateUtil.timestampToMonth(timeMillis);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- protected void initData() {
- initTableConfig();
- ChartUtil.initPieChart(this, viewBinding.eventPieChart);
-
- dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
-
- private void initTableConfig() {
- TableConfig config = viewBinding.eventTableView.getConfig();
- //首行属性
- config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
- config.setContentBackgroundColor(Color.LTGRAY);
- config.setColumnTitleVerticalPadding(30);
- //内容属性
- config.setContentStyle(new FontStyle(50, Color.DKGRAY));
- config.setVerticalPadding(30);
- config.setShowTableTitle(false); //不显示标题
- config.setShowXSequence(false); //不显示横向ABC....序列
- config.setShowYSequence(false); //不显示纵向123....序列
- config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示
- }
-
- @Override
- protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
- String[] date = new String[0];
- try {
- date = TimeOrDateUtil.timestampToMonth(millSeconds);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
- }
- });
-
- dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
- @Override
- public void onChanged(HighEventBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- HighEventBean.DataBean dataBean = dataBeanList.get(i);
- String caseNum = dataBean.getCaseNum();
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
- if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
- }
- }
- viewBinding.eventTableView.setData(excelDataBeans);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
deleted file mode 100644
index 354950b..0000000
--- a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.casic.dcms.mvvm.view;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bin.david.form.core.TableConfig;
-import com.bin.david.form.data.style.FontStyle;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityHighEventBinding;
-import com.casic.dcms.mvvm.model.ExcelDataBean;
-import com.casic.dcms.mvvm.model.HighEventBean;
-import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
-import com.casic.dcms.utils.ChartViewHelper;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.utils.TimeOrDateUtil;
-import com.github.mikephil.charting.data.PieEntry;
-import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-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.ImmerseStatusBarUtil;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Pengxh
- * @time : 2021/4/16 8:44
- * @email : 290677893@qq.com
- */
-public class HighEventListActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "HighEventListActivity";
- private final Context context = HighEventListActivity.this;
- private final List excelDataBeans = new ArrayList<>();
- private final List pieEntries = new ArrayList<>();
- private String[] date = new String[0];
- private DataAnalysisViewModel dataAnalysisViewModel;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("高发问题");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- //默认显示当前月的数据
- long timeMillis = System.currentTimeMillis();
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
- try {
- date = TimeOrDateUtil.timestampToMonth(timeMillis);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- protected void initData() {
- initTableConfig();
- ChartUtil.initPieChart(this, viewBinding.eventPieChart);
-
- dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
-
- private void initTableConfig() {
- TableConfig config = viewBinding.eventTableView.getConfig();
- //首行属性
- config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
- config.setContentBackgroundColor(Color.LTGRAY);
- config.setColumnTitleVerticalPadding(30);
- //内容属性
- config.setContentStyle(new FontStyle(50, Color.DKGRAY));
- config.setVerticalPadding(30);
- config.setShowTableTitle(false); //不显示标题
- config.setShowXSequence(false); //不显示横向ABC....序列
- config.setShowYSequence(false); //不显示纵向123....序列
- config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示
- }
-
- @Override
- protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
- String[] date = new String[0];
- try {
- date = TimeOrDateUtil.timestampToMonth(millSeconds);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
- }
- });
-
- dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
- @Override
- public void onChanged(HighEventBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- HighEventBean.DataBean dataBean = dataBeanList.get(i);
- String caseNum = dataBean.getCaseNum();
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
- if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
- }
- }
- viewBinding.eventTableView.setData(excelDataBeans);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
- }
- });
- }
-}
\ No newline at end of file
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 9ae249d..bb9051d 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
@@ -57,16 +57,17 @@
}
public void obtainHighEvent(String begTime, String endTime) {
- Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getHighEvent(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
@@ -78,6 +79,8 @@
HighEventBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
highEventModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
}
} catch (IOException e) {
e.printStackTrace();
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
deleted file mode 100644
index 354950b..0000000
--- a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.casic.dcms.mvvm.view;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bin.david.form.core.TableConfig;
-import com.bin.david.form.data.style.FontStyle;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityHighEventBinding;
-import com.casic.dcms.mvvm.model.ExcelDataBean;
-import com.casic.dcms.mvvm.model.HighEventBean;
-import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
-import com.casic.dcms.utils.ChartViewHelper;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.utils.TimeOrDateUtil;
-import com.github.mikephil.charting.data.PieEntry;
-import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-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.ImmerseStatusBarUtil;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Pengxh
- * @time : 2021/4/16 8:44
- * @email : 290677893@qq.com
- */
-public class HighEventListActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "HighEventListActivity";
- private final Context context = HighEventListActivity.this;
- private final List excelDataBeans = new ArrayList<>();
- private final List pieEntries = new ArrayList<>();
- private String[] date = new String[0];
- private DataAnalysisViewModel dataAnalysisViewModel;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("高发问题");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- //默认显示当前月的数据
- long timeMillis = System.currentTimeMillis();
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
- try {
- date = TimeOrDateUtil.timestampToMonth(timeMillis);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- protected void initData() {
- initTableConfig();
- ChartUtil.initPieChart(this, viewBinding.eventPieChart);
-
- dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
-
- private void initTableConfig() {
- TableConfig config = viewBinding.eventTableView.getConfig();
- //首行属性
- config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
- config.setContentBackgroundColor(Color.LTGRAY);
- config.setColumnTitleVerticalPadding(30);
- //内容属性
- config.setContentStyle(new FontStyle(50, Color.DKGRAY));
- config.setVerticalPadding(30);
- config.setShowTableTitle(false); //不显示标题
- config.setShowXSequence(false); //不显示横向ABC....序列
- config.setShowYSequence(false); //不显示纵向123....序列
- config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示
- }
-
- @Override
- protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
- String[] date = new String[0];
- try {
- date = TimeOrDateUtil.timestampToMonth(millSeconds);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
- }
- });
-
- dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
- @Override
- public void onChanged(HighEventBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- HighEventBean.DataBean dataBean = dataBeanList.get(i);
- String caseNum = dataBean.getCaseNum();
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
- if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
- }
- }
- viewBinding.eventTableView.setData(excelDataBeans);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
- }
- });
- }
-}
\ No newline at end of file
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 9ae249d..bb9051d 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
@@ -57,16 +57,17 @@
}
public void obtainHighEvent(String begTime, String endTime) {
- Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getHighEvent(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
@@ -78,6 +79,8 @@
HighEventBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
highEventModel.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 6efeb42..f8cd630 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -174,7 +174,7 @@
chart.invalidate();
}
- public static void initBarChart(HorizontalBarChart chart, String[] labelName) {
+ public static void initBarChart(HorizontalBarChart chart, List labelName) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
chart.setScaleEnabled(false);
@@ -187,11 +187,11 @@
xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
+ xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
- return labelName[(int) value];
+ return labelName.get((int) value);
}
});
xAxis.setDrawAxisLine(true);//是否绘制轴线
@@ -242,6 +242,7 @@
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
}
public static void setPieChartData(PieChart chart, List entries) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
deleted file mode 100644
index 354950b..0000000
--- a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.casic.dcms.mvvm.view;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bin.david.form.core.TableConfig;
-import com.bin.david.form.data.style.FontStyle;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityHighEventBinding;
-import com.casic.dcms.mvvm.model.ExcelDataBean;
-import com.casic.dcms.mvvm.model.HighEventBean;
-import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
-import com.casic.dcms.utils.ChartViewHelper;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.utils.TimeOrDateUtil;
-import com.github.mikephil.charting.data.PieEntry;
-import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-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.ImmerseStatusBarUtil;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Pengxh
- * @time : 2021/4/16 8:44
- * @email : 290677893@qq.com
- */
-public class HighEventListActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "HighEventListActivity";
- private final Context context = HighEventListActivity.this;
- private final List excelDataBeans = new ArrayList<>();
- private final List pieEntries = new ArrayList<>();
- private String[] date = new String[0];
- private DataAnalysisViewModel dataAnalysisViewModel;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("高发问题");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- //默认显示当前月的数据
- long timeMillis = System.currentTimeMillis();
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
- try {
- date = TimeOrDateUtil.timestampToMonth(timeMillis);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- protected void initData() {
- initTableConfig();
- ChartUtil.initPieChart(this, viewBinding.eventPieChart);
-
- dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
-
- private void initTableConfig() {
- TableConfig config = viewBinding.eventTableView.getConfig();
- //首行属性
- config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
- config.setContentBackgroundColor(Color.LTGRAY);
- config.setColumnTitleVerticalPadding(30);
- //内容属性
- config.setContentStyle(new FontStyle(50, Color.DKGRAY));
- config.setVerticalPadding(30);
- config.setShowTableTitle(false); //不显示标题
- config.setShowXSequence(false); //不显示横向ABC....序列
- config.setShowYSequence(false); //不显示纵向123....序列
- config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示
- }
-
- @Override
- protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
- String[] date = new String[0];
- try {
- date = TimeOrDateUtil.timestampToMonth(millSeconds);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
- }
- });
-
- dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
- @Override
- public void onChanged(HighEventBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- HighEventBean.DataBean dataBean = dataBeanList.get(i);
- String caseNum = dataBean.getCaseNum();
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
- if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
- }
- }
- viewBinding.eventTableView.setData(excelDataBeans);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
- }
- });
- }
-}
\ No newline at end of file
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 9ae249d..bb9051d 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
@@ -57,16 +57,17 @@
}
public void obtainHighEvent(String begTime, String endTime) {
- Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getHighEvent(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
@@ -78,6 +79,8 @@
HighEventBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
highEventModel.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 6efeb42..f8cd630 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -174,7 +174,7 @@
chart.invalidate();
}
- public static void initBarChart(HorizontalBarChart chart, String[] labelName) {
+ public static void initBarChart(HorizontalBarChart chart, List labelName) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
chart.setScaleEnabled(false);
@@ -187,11 +187,11 @@
xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
+ xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
- return labelName[(int) value];
+ return labelName.get((int) value);
}
});
xAxis.setDrawAxisLine(true);//是否绘制轴线
@@ -242,6 +242,7 @@
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
}
public static void setPieChartData(PieChart chart, List entries) {
diff --git a/app/src/main/res/layout/activity_case_status.xml b/app/src/main/res/layout/activity_case_status.xml
index 26401dc..015123a 100644
--- a/app/src/main/res/layout/activity_case_status.xml
+++ b/app/src/main/res/layout/activity_case_status.xml
@@ -30,20 +30,20 @@
+ android:layout_height="@dimen/dp_200" />
+ android:layout_height="400dp" />
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d61ebf7..552f6c3 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -29,12 +29,14 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 41f20d8..c373600 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -64,7 +64,7 @@
-
+
diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
index 257864c..da4637d 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/model/HighEventBean.java
@@ -3,19 +3,28 @@
import java.util.List;
public class HighEventBean {
- 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;
}
@@ -32,23 +41,7 @@
this.success = success;
}
- public List getData() {
- return data;
- }
-
- public void setData(List data) {
- this.data = data;
- }
-
- public static class DataBean {
- /**
- * caseMajorType : 其他事件
- * caseNum : 8
- * caseSubType : 违规高空悬吊作业
- * caseType : 其他事件/违规高空悬吊作业
- * eorc : 事件
- */
-
+ public static class DataDTO {
private String caseMajorType;
private String caseNum;
private String caseSubType;
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
index b9244a0..9dad340 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseStatusActivity.java
@@ -17,7 +17,6 @@
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.ImmerseStatusBarUtil;
import java.util.ArrayList;
@@ -53,13 +52,13 @@
@Override
protected void initData() {
//初始化饼图
- ChartUtil.initPieChart(this, viewBinding.statusPieChart);
+ ChartViewHelper.initPieChart(viewBinding.statusPieChart);
//TODO 这是模拟数据
pieEntries.add(new PieEntry(new Random().nextInt(10), "未结案"));
pieEntries.add(new PieEntry(new Random().nextInt(200), "已结案"));
ChartViewHelper.setPieChartData(viewBinding.statusPieChart, pieEntries);
//初始化横向柱状图
- ChartUtil.initBarChart(this, viewBinding.statusBarChart, horizontalLabelName);
+ ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName);
//设置数据
//TODO 这是模拟数据
for (int i = 0; i < horizontalLabelName.size(); i++) {
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
index 52345cd..f219308 100644
--- a/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/DataAnalysisActivity.java
@@ -49,7 +49,7 @@
startActivity(intent);
break;
case 2:
- intent.setClass(context, HighEventListActivity.class);
+ intent.setClass(context, HighEventActivity.class);
startActivity(intent);
break;
case 3:
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
new file mode 100644
index 0000000..caed716
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventActivity.java
@@ -0,0 +1,138 @@
+package com.casic.dcms.mvvm.view;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.bin.david.form.core.TableConfig;
+import com.bin.david.form.data.style.FontStyle;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityHighEventBinding;
+import com.casic.dcms.mvvm.model.ExcelDataBean;
+import com.casic.dcms.mvvm.model.HighEventBean;
+import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
+import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.LocaleConstant;
+import com.casic.dcms.utils.TimeOrDateUtil;
+import com.github.mikephil.charting.data.PieEntry;
+import com.gyf.immersionbar.ImmersionBar;
+import com.jzxiang.pickerview.TimePickerDialog;
+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.DeviceSizeUtil;
+import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Pengxh
+ * @time : 2021/4/16 8:44
+ * @email : 290677893@qq.com
+ */
+public class HighEventActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "HighEventListActivity";
+ private final Context context = HighEventActivity.this;
+ private final List excelDataBeans = new ArrayList<>();
+ private final List pieEntries = new ArrayList<>();
+ private String[] date = new String[0];
+ private DataAnalysisViewModel dataAnalysisViewModel;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
+ ImmersionBar.with(this).statusBarDarkFont(false).init();
+
+ viewBinding.titleBarLayout.titleView.setText("高发问题");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void initData() {
+ //默认显示当前月的数据
+ long timeMillis = System.currentTimeMillis();
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
+ try {
+ date = TimeOrDateUtil.timestampToMonth(timeMillis);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ initTableConfig();
+ ChartViewHelper.initPieChart(viewBinding.eventPieChart);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+
+ private void initTableConfig() {
+ TableConfig config = viewBinding.eventTableView.getConfig();
+ //首行属性
+ config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
+ config.setContentBackgroundColor(Color.LTGRAY);
+ config.setColumnTitleVerticalPadding(30);
+ //内容属性
+ config.setContentStyle(new FontStyle(50, Color.DKGRAY));
+ config.setVerticalPadding(30);
+ config.setShowTableTitle(false); //不显示标题
+ config.setShowXSequence(false); //不显示横向ABC....序列
+ config.setShowYSequence(false); //不显示纵向123....序列
+ config.setMinTableWidth(DeviceSizeUtil.obtainScreenWidth(context));//不设置的话会就不会居中显示
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new TimePickerDialog.Builder()
+ .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
+ .setTitleStringId("选择日期")
+ .setWheelItemTextSize(16)
+ .setCyclic(false)
+ .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
+ .setMaxMillseconds(System.currentTimeMillis())
+ .setType(Type.YEAR_MONTH)
+ .setCallBack(new OnDateSetListener() {
+ @Override
+ public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
+ viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
+ String[] date = new String[0];
+ try {
+ date = TimeOrDateUtil.timestampToMonth(millSeconds);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
+ }
+ }).build().show(getSupportFragmentManager(), "year_month");
+ }
+ });
+
+ dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(HighEventBean resultBean) {
+ if (resultBean.getCode() == 200) {
+ List dataBeanList = resultBean.getData();
+ for (int i = 0; i < dataBeanList.size() - 1; i++) {
+ HighEventBean.DataDTO dataBean = dataBeanList.get(i);
+ if (!dataBean.getCaseType().equals("-/-")) {
+ String caseNum = dataBean.getCaseNum();
+ excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
+ if (!caseNum.equals("0")) {
+ pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
+ }
+ }
+ }
+ viewBinding.eventTableView.setData(excelDataBeans);
+ ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
+ }
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
deleted file mode 100644
index 354950b..0000000
--- a/app/src/main/java/com/casic/dcms/mvvm/view/HighEventListActivity.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.casic.dcms.mvvm.view;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.bin.david.form.core.TableConfig;
-import com.bin.david.form.data.style.FontStyle;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityHighEventBinding;
-import com.casic.dcms.mvvm.model.ExcelDataBean;
-import com.casic.dcms.mvvm.model.HighEventBean;
-import com.casic.dcms.mvvm.vm.DataAnalysisViewModel;
-import com.casic.dcms.utils.ChartViewHelper;
-import com.casic.dcms.utils.LocaleConstant;
-import com.casic.dcms.utils.TimeOrDateUtil;
-import com.github.mikephil.charting.data.PieEntry;
-import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-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.ImmerseStatusBarUtil;
-import com.qmuiteam.qmui.util.QMUIDisplayHelper;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Pengxh
- * @time : 2021/4/16 8:44
- * @email : 290677893@qq.com
- */
-public class HighEventListActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "HighEventListActivity";
- private final Context context = HighEventListActivity.this;
- private final List excelDataBeans = new ArrayList<>();
- private final List pieEntries = new ArrayList<>();
- private String[] date = new String[0];
- private DataAnalysisViewModel dataAnalysisViewModel;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
- ImmersionBar.with(this).statusBarDarkFont(false).init();
-
- viewBinding.titleBarLayout.titleView.setText("高发问题");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- //默认显示当前月的数据
- long timeMillis = System.currentTimeMillis();
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis));
- try {
- date = TimeOrDateUtil.timestampToMonth(timeMillis);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
-
- @Override
- protected void initData() {
- initTableConfig();
- ChartUtil.initPieChart(this, viewBinding.eventPieChart);
-
- dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
-
- private void initTableConfig() {
- TableConfig config = viewBinding.eventTableView.getConfig();
- //首行属性
- config.setColumnTitleStyle(new FontStyle(50, Color.DKGRAY));
- config.setContentBackgroundColor(Color.LTGRAY);
- config.setColumnTitleVerticalPadding(30);
- //内容属性
- config.setContentStyle(new FontStyle(50, Color.DKGRAY));
- config.setVerticalPadding(30);
- config.setShowTableTitle(false); //不显示标题
- config.setShowXSequence(false); //不显示横向ABC....序列
- config.setShowYSequence(false); //不显示纵向123....序列
- config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示
- }
-
- @Override
- protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(millSeconds));
- String[] date = new String[0];
- try {
- date = TimeOrDateUtil.timestampToMonth(millSeconds);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- dataAnalysisViewModel.obtainHighEvent(date[0], date[1]);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
- }
- });
-
- dataAnalysisViewModel.highEventModel.observe(this, new Observer() {
- @Override
- public void onChanged(HighEventBean resultBean) {
- if (resultBean.getCode() == 200) {
- List dataBeanList = resultBean.getData();
- for (int i = 0; i < dataBeanList.size() - 1; i++) {
- HighEventBean.DataBean dataBean = dataBeanList.get(i);
- String caseNum = dataBean.getCaseNum();
- excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum)));
- if (!caseNum.equals("0")) {
- pieEntries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType()));
- }
- }
- viewBinding.eventTableView.setData(excelDataBeans);
- ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries);
- }
- }
- });
- }
-}
\ No newline at end of file
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 9ae249d..bb9051d 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
@@ -57,16 +57,17 @@
}
public void obtainHighEvent(String begTime, String endTime) {
- Observable observable = RetrofitServiceManager.getEventSource(begTime, endTime);
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getHighEvent(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
@@ -78,6 +79,8 @@
HighEventBean resultBean = gson.fromJson(response, new TypeToken() {
}.getType());
highEventModel.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 6efeb42..f8cd630 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -174,7 +174,7 @@
chart.invalidate();
}
- public static void initBarChart(HorizontalBarChart chart, String[] labelName) {
+ public static void initBarChart(HorizontalBarChart chart, List labelName) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
chart.setScaleEnabled(false);
@@ -187,11 +187,11 @@
xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
+ xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
- return labelName[(int) value];
+ return labelName.get((int) value);
}
});
xAxis.setDrawAxisLine(true);//是否绘制轴线
@@ -242,6 +242,7 @@
legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
}
public static void setPieChartData(PieChart chart, List entries) {
diff --git a/app/src/main/res/layout/activity_case_status.xml b/app/src/main/res/layout/activity_case_status.xml
index 26401dc..015123a 100644
--- a/app/src/main/res/layout/activity_case_status.xml
+++ b/app/src/main/res/layout/activity_case_status.xml
@@ -30,20 +30,20 @@
+ android:layout_height="@dimen/dp_200" />
+ android:layout_height="400dp" />
diff --git a/app/src/main/res/layout/activity_high_event.xml b/app/src/main/res/layout/activity_high_event.xml
index ca88103..56d67c4 100644
--- a/app/src/main/res/layout/activity_high_event.xml
+++ b/app/src/main/res/layout/activity_high_event.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:elevation="@dimen/dp_10"
+ app:cardCornerRadius="@dimen/dp_5"
+ app:cardUseCompatPadding="true">
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content" />
+
+
\ No newline at end of file