diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 1e2908a..3c84e50 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -30,8 +30,8 @@ //饼图预置颜色,前三种作为街道统计饼图颜色 public static final List PIE_COLORS = Arrays.asList( - R.color.mainThemeColor, R.color.punishColor, R.color.colorAccent, - R.color.pieColor1, R.color.onLineColor, R.color.pieColor3, + R.color.pieColor3, R.color.onLineColor, R.color.pieColor1, + R.color.persuadeColor, R.color.punishColor, R.color.colorAccent, R.color.pieColor4, R.color.pieColor2, R.color.pieColor5, R.color.colorPrimary); diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 1e2908a..3c84e50 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -30,8 +30,8 @@ //饼图预置颜色,前三种作为街道统计饼图颜色 public static final List PIE_COLORS = Arrays.asList( - R.color.mainThemeColor, R.color.punishColor, R.color.colorAccent, - R.color.pieColor1, R.color.onLineColor, R.color.pieColor3, + R.color.pieColor3, R.color.onLineColor, R.color.pieColor1, + R.color.persuadeColor, R.color.punishColor, R.color.colorAccent, R.color.pieColor4, R.color.pieColor2, R.color.pieColor5, R.color.colorPrimary); diff --git a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java index 7321c43..b260c69 100644 --- a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java +++ b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java @@ -34,11 +34,23 @@ if (e.getY() == 0) { dataView.setText("暂无数据"); } else { - String type = ""; - if (data.equals("total")) { - type = "新增"; - } else { - type = "已处理"; + String type; + switch (data) { + case "total": + type = "新增"; + break; + case "common": + type = "普通上报"; + break; + case "quick": + type = "快速上报"; + break; + case "package": + type = "三包上报"; + break; + default: + type = "已处理"; + break; } dataView.setText(String.format(Locale.CHINA, "%s:%s件", type, decimalFormat.format(e.getY()))); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 1e2908a..3c84e50 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -30,8 +30,8 @@ //饼图预置颜色,前三种作为街道统计饼图颜色 public static final List PIE_COLORS = Arrays.asList( - R.color.mainThemeColor, R.color.punishColor, R.color.colorAccent, - R.color.pieColor1, R.color.onLineColor, R.color.pieColor3, + R.color.pieColor3, R.color.onLineColor, R.color.pieColor1, + R.color.persuadeColor, R.color.punishColor, R.color.colorAccent, R.color.pieColor4, R.color.pieColor2, R.color.pieColor5, R.color.colorPrimary); diff --git a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java index 7321c43..b260c69 100644 --- a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java +++ b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java @@ -34,11 +34,23 @@ if (e.getY() == 0) { dataView.setText("暂无数据"); } else { - String type = ""; - if (data.equals("total")) { - type = "新增"; - } else { - type = "已处理"; + String type; + switch (data) { + case "total": + type = "新增"; + break; + case "common": + type = "普通上报"; + break; + case "quick": + type = "快速上报"; + break; + case "package": + type = "三包上报"; + break; + default: + type = "已处理"; + break; } dataView.setText(String.format(Locale.CHINA, "%s:%s件", type, decimalFormat.format(e.getY()))); } diff --git a/app/src/main/res/layout/activity_case_status.xml b/app/src/main/res/layout/activity_case_status.xml new file mode 100644 index 0000000..bbc1e5c --- /dev/null +++ b/app/src/main/res/layout/activity_case_status.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 526ab30..26058ed 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -42,6 +42,7 @@ + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 1e2908a..3c84e50 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -30,8 +30,8 @@ //饼图预置颜色,前三种作为街道统计饼图颜色 public static final List PIE_COLORS = Arrays.asList( - R.color.mainThemeColor, R.color.punishColor, R.color.colorAccent, - R.color.pieColor1, R.color.onLineColor, R.color.pieColor3, + R.color.pieColor3, R.color.onLineColor, R.color.pieColor1, + R.color.persuadeColor, R.color.punishColor, R.color.colorAccent, R.color.pieColor4, R.color.pieColor2, R.color.pieColor5, R.color.colorPrimary); diff --git a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java index 7321c43..b260c69 100644 --- a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java +++ b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java @@ -34,11 +34,23 @@ if (e.getY() == 0) { dataView.setText("暂无数据"); } else { - String type = ""; - if (data.equals("total")) { - type = "新增"; - } else { - type = "已处理"; + String type; + switch (data) { + case "total": + type = "新增"; + break; + case "common": + type = "普通上报"; + break; + case "quick": + type = "快速上报"; + break; + case "package": + type = "三包上报"; + break; + default: + type = "已处理"; + break; } dataView.setText(String.format(Locale.CHINA, "%s:%s件", type, decimalFormat.format(e.getY()))); } diff --git a/app/src/main/res/layout/activity_case_status.xml b/app/src/main/res/layout/activity_case_status.xml new file mode 100644 index 0000000..bbc1e5c --- /dev/null +++ b/app/src/main/res/layout/activity_case_status.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_street_statistics.xml b/app/src/main/res/layout/activity_street_statistics.xml index 7f187cb..9e7f95a 100644 --- a/app/src/main/res/layout/activity_street_statistics.xml +++ b/app/src/main/res/layout/activity_street_statistics.xml @@ -27,6 +27,19 @@ app:cardCornerRadius="5dp" app:cardUseCompatPadding="true"> + + + + + + @@ -74,7 +75,7 @@ - + @@ -93,6 +94,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5c10399..1eb120f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java new file mode 100644 index 0000000..24f9133 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseStatusActivity.java @@ -0,0 +1,87 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.AndroidxBaseActivity; +import com.casic.dcms.databinding.ActivityCaseStatusBinding; +import com.casic.dcms.utils.ChartViewHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.PieEntry; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.jzxiang.pickerview.listener.OnDateSetListener; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * @author a203 + * @description 案卷状态 + * @package com.casic.dcms.ui + * @date 2022/2/16 16:55 + * @email 290677893@qq.com + */ +public class CaseStatusActivity extends AndroidxBaseActivity { + + private static final String[] horizontalLabelName = {"待立案", "待核实", "待处理", "待核查", "待调整", "不予立案", "销案", "其他状态", "待结案", "结案"}; + private final Context context = CaseStatusActivity.this; + private final List pieEntries = new ArrayList<>(); + private final List barEntries = new ArrayList<>(); + + @Override + protected void setupTopBarLayout() { + viewBinding.titleBarLayout.titleView.setText("案卷状态"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + } + + @Override + protected void initData() { + //初始化饼图 + 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); + //初始化横向柱状图 + ChartViewHelper.initBarChart(viewBinding.statusBarChart, horizontalLabelName); + //设置数据 + //TODO 这是模拟数据 + for (int i = 0; i < horizontalLabelName.length; i++) { + barEntries.add(new BarEntry(i, new Random().nextInt(100))); + } + ChartViewHelper.setBarChartData(viewBinding.statusBarChart, barEntries); + } + + @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() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH) + .setCallBack(new OnDateSetListener() { + @Override + public void onDateSet(TimePickerDialog timePickerView, long millSeconds) { + String date = TimeOrDateUtil.timestampToYearMonth(millSeconds); + viewBinding.titleBarLayout.dateView.setText(date); + } + }).build().show(getSupportFragmentManager(), "year_month"); + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java index 4888e6e..3f699a0 100644 --- a/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/DataAnalysisActivity.java @@ -40,7 +40,8 @@ startActivity(intent); break; case 1: - ToastHelper.showToast("案卷状态", ToastHelper.INFO); + intent.setClass(context, CaseStatusActivity.class); + startActivity(intent); break; case 2: intent.setClass(context, HighEventListActivity.class); diff --git a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java index b0f6d35..6e66770 100644 --- a/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/EventSourceActivity.java @@ -39,12 +39,21 @@ private final Context context = EventSourceActivity.this; private final List excelDataBeans = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); + private String[] date = new String[0]; private EventSourcePresenterImpl eventSourcePresenter; @Override protected void setupTopBarLayout() { 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 @@ -54,15 +63,6 @@ //初始化饼图 ChartViewHelper.initPieChart(viewBinding.resourcePieChart); eventSourcePresenter = new EventSourcePresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } eventSourcePresenter.onReadyRetrofitRequest(date[0], date[1]); //设置数据 ChartViewHelper.setPieChartData(viewBinding.resourcePieChart, pieEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java index 8676ee3..65d2f93 100644 --- a/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/HighEventListActivity.java @@ -39,12 +39,21 @@ 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 HighEventPresenterImpl highEventPresenter; @Override protected void setupTopBarLayout() { 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 @@ -52,15 +61,6 @@ initTableConfig(); ChartViewHelper.initPieChart(viewBinding.eventPieChart); highEventPresenter = new HighEventPresenterImpl(this); - //默认显示当前月的数据 - long timeMillis = System.currentTimeMillis(); - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(timeMillis)); - String[] date = new String[0]; - try { - date = TimeOrDateUtil.timestampToMonth(timeMillis); - } catch (ParseException e) { - e.printStackTrace(); - } highEventPresenter.onReadyRetrofitRequest(date[0], date[1]); ChartViewHelper.setPieChartData(viewBinding.eventPieChart, pieEntries); } diff --git a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java index 51267be..5e16ab9 100644 --- a/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/StreetStatisticsActivity.java @@ -16,12 +16,14 @@ import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.TimeOrDateUtil; import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.PieEntry; import com.jzxiang.pickerview.TimePickerDialog; import com.jzxiang.pickerview.data.Type; import com.jzxiang.pickerview.listener.OnDateSetListener; import java.util.ArrayList; +import java.util.Calendar; import java.util.List; import java.util.Random; @@ -35,8 +37,12 @@ public class StreetStatisticsActivity extends AndroidxBaseActivity { private static final String TAG = "StreetActivity"; + private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; private final Context context = StreetStatisticsActivity.this; private final List spinnerEntries = new ArrayList<>(); + private final List commonEntries = new ArrayList<>(); + private final List quickEntries = new ArrayList<>(); + private final List packageEntries = new ArrayList<>(); private final List pieEntries = new ArrayList<>(); private final List barEntries = new ArrayList<>(); private String selectedStreet = ""; @@ -73,26 +79,41 @@ } }); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); + //初始化折线图 + ChartViewHelper.initLineChart(viewBinding.streetLineChart); + //TODO 这是模拟数据 + Calendar calendar = Calendar.getInstance(); + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + for (int i = 0; i < maxDay; i++) { + commonEntries.add(new Entry(i, new Random().nextInt(15), "common")); + } + for (int i = 0; i < maxDay; i++) { + quickEntries.add(new Entry(i, new Random().nextInt(20), "quick")); + } + for (int i = 0; i < maxDay; i++) { + packageEntries.add(new Entry(i, new Random().nextInt(10), "package")); + } + ChartViewHelper.setLineChartData(viewBinding.streetLineChart, commonEntries, quickEntries, packageEntries); //初始化饼图 ChartViewHelper.initPieChart(viewBinding.streetPieChart); Log.d(TAG, "selectedStreet: " + selectedStreet); //设置数据 //TODO 这是模拟数据 - pieEntries.add(new PieEntry(new Random().nextInt(300), "普通")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "快速")); - pieEntries.add(new PieEntry(new Random().nextInt(300), "三包")); + pieEntries.add(new PieEntry(new Random().nextInt(100), "普通")); + pieEntries.add(new PieEntry(new Random().nextInt(150), "快速")); + pieEntries.add(new PieEntry(new Random().nextInt(50), "三包")); ChartViewHelper.setPieChartData(viewBinding.streetPieChart, pieEntries); //初始化横向柱状图 - ChartViewHelper.initBarChart(viewBinding.streetBarChart); + ChartViewHelper.initBarChart(viewBinding.streetBarChart, horizontalLabelName); //设置数据 //TODO 这是模拟数据 - for (int i = 0; i < 7; i++) { + for (int i = 0; i < horizontalLabelName.length; i++) { barEntries.add(new BarEntry(i, new Random().nextInt(100))); } ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries); diff --git a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java index 51270fc..4f2e201 100644 --- a/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/TrendAnalysisActivity.java @@ -36,12 +36,12 @@ protected void setupTopBarLayout() { viewBinding.titleBarLayout.titleView.setText("趋势分析"); viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + //默认显示当前月的分析数据 + viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); } @Override protected void initData() { - //默认显示当前月的分析数据 - viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis())); //完成率总览 bindProgressAnimation(viewBinding.wholeProgressBar, 80); //初始化折线图 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 16dba9c..5f092ce 100644 --- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java @@ -42,9 +42,9 @@ */ public class ChartViewHelper { + private static final String TAG = "ChartViewHelper"; private static final DecimalFormat decimalFormat = new DecimalFormat("##0"); private static final String[] labelName = {"普通", "快速", "三包"}; - private static final String[] horizontalLabelName = {"销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实"}; public static void initLineChart(LineChart chart) { chart.setDrawGridBackground(false); @@ -62,7 +62,7 @@ XAxis xAxis = chart.getXAxis(); xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); - xAxis.setAxisMinimum(0f); + xAxis.setAxisMinimum(1f); xAxis.setAxisMaximum(maxDay); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -102,6 +102,30 @@ chart.invalidate(); } + public static void setLineChartData(LineChart chart, List commonEntries, List quickEntries, List packageEntries) { + List lineDataSets = new ArrayList<>(); + //设置数据 + LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报"); + commonDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//线条颜色 + commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.onLineColor));//圆点颜色 + lineDataSets.add(commonDataSet); + + LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报"); + quickDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//线条颜色 + quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.warnColor));//圆点颜色 + lineDataSets.add(quickDataSet); + + LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报"); + packageDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//线条颜色 + packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.mainThemeColor));//圆点颜色 + lineDataSets.add(packageDataSet); + + LineData lineData = new LineData(lineDataSets); + lineData.setDrawValues(false); + chart.setData(lineData); + chart.invalidate(); + } + public static void initBarChart(BarChart chart) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); @@ -137,7 +161,7 @@ public static void setBarChartData(BarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -150,7 +174,7 @@ chart.invalidate(); } - public static void initBarChart(HorizontalBarChart chart) { + public static void initBarChart(HorizontalBarChart chart, String[] labelName) { chart.setDrawGridBackground(false); chart.setDrawBorders(false); chart.setScaleEnabled(false); @@ -163,11 +187,11 @@ xAxis.setTextColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.textColor)); xAxis.setTextSize(12f); xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值 - xAxis.setLabelCount(horizontalLabelName.length); // 设置x轴上的标签个数 + xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数 xAxis.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { - return horizontalLabelName[(int) value]; + return labelName[(int) value]; } }); xAxis.setDrawAxisLine(true);//是否绘制轴线 @@ -185,7 +209,7 @@ public static void setBarChartData(HorizontalBarChart chart, List entries) { //绑定数据 BarDataSet barDataSet = new BarDataSet(entries, ""); - barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), android.R.color.holo_blue_bright)); + barDataSet.setColor(ContextCompat.getColor(BaseApplication.getInstance(), R.color.barChartColor)); barDataSet.setValueFormatter(new ValueFormatter() { @Override public String getFormattedValue(float value) { @@ -231,7 +255,7 @@ //设置饼图块颜色 List colors = new ArrayList<>(); for (int i = 0; i < entries.size(); i++) { - colors.add(Constant.PIE_COLORS.get(i)); + colors.add(ContextCompat.getColor(BaseApplication.getInstance(), Constant.PIE_COLORS.get(i))); } dataSet.setColors(colors); //设置标签显示在饼图块外面 diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 1e2908a..3c84e50 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -30,8 +30,8 @@ //饼图预置颜色,前三种作为街道统计饼图颜色 public static final List PIE_COLORS = Arrays.asList( - R.color.mainThemeColor, R.color.punishColor, R.color.colorAccent, - R.color.pieColor1, R.color.onLineColor, R.color.pieColor3, + R.color.pieColor3, R.color.onLineColor, R.color.pieColor1, + R.color.persuadeColor, R.color.punishColor, R.color.colorAccent, R.color.pieColor4, R.color.pieColor2, R.color.pieColor5, R.color.colorPrimary); diff --git a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java index 7321c43..b260c69 100644 --- a/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java +++ b/app/src/main/java/com/casic/dcms/widgets/DetailsMarkerView.java @@ -34,11 +34,23 @@ if (e.getY() == 0) { dataView.setText("暂无数据"); } else { - String type = ""; - if (data.equals("total")) { - type = "新增"; - } else { - type = "已处理"; + String type; + switch (data) { + case "total": + type = "新增"; + break; + case "common": + type = "普通上报"; + break; + case "quick": + type = "快速上报"; + break; + case "package": + type = "三包上报"; + break; + default: + type = "已处理"; + break; } dataView.setText(String.format(Locale.CHINA, "%s:%s件", type, decimalFormat.format(e.getY()))); } diff --git a/app/src/main/res/layout/activity_case_status.xml b/app/src/main/res/layout/activity_case_status.xml new file mode 100644 index 0000000..bbc1e5c --- /dev/null +++ b/app/src/main/res/layout/activity_case_status.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_street_statistics.xml b/app/src/main/res/layout/activity_street_statistics.xml index 7f187cb..9e7f95a 100644 --- a/app/src/main/res/layout/activity_street_statistics.xml +++ b/app/src/main/res/layout/activity_street_statistics.xml @@ -27,6 +27,19 @@ app:cardCornerRadius="5dp" app:cardUseCompatPadding="true"> + + + + + #278DF9 #333333 #24CE9E + #6666FF #06134C #090E47 #98A0BD - #FB2808 - #FD8D38 - #2C63DD + #FF2808 + #FF8D38 + #2C63FF #F1F1F1 - #FC6667 - #CBA3EE - #C3E785 - #9BDBF6 - #FFEA00 + #FF6969 + #CDA5FF + #C3EB87 + #9BFFFF + #FFFF00