diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index 9567429..1e7c4a8 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -170,7 +170,17 @@
);
/**
- * 获取问题来源
+ * 获取单位处置情况
+ */
+ @GET("/departmentAssess/departmentAccess")
+ Observable getDeptHandleCondition(
+ @Header("token") String token,
+ @Query("begTime") String begTime,
+ @Query("endTime") String endTime
+ );
+
+ /**
+ * 获取城市基础数据
*/
@GET("/dcm/view/list")
Observable getCityBaseData(@Header("token") String token);
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index 9567429..1e7c4a8 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -170,7 +170,17 @@
);
/**
- * 获取问题来源
+ * 获取单位处置情况
+ */
+ @GET("/departmentAssess/departmentAccess")
+ Observable getDeptHandleCondition(
+ @Header("token") String token,
+ @Query("begTime") String begTime,
+ @Query("endTime") String endTime
+ );
+
+ /**
+ * 获取城市基础数据
*/
@GET("/dcm/view/list")
Observable getCityBaseData(@Header("token") String token);
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f09aebf..5bbc8ef 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -118,6 +118,13 @@
}
/**
+ * 获取单位处置情况
+ */
+ public static Observable getDeptHandleCondition(String begTime, String endTime) {
+ return api.getDeptHandleCondition(AuthenticationHelper.getToken(), begTime, endTime);
+ }
+
+ /**
* 获取城市基础数据
*/
public static Observable getCityBaseData() {
@@ -125,7 +132,7 @@
}
/**
- * 获取城市基础数据
+ * 获取案卷来源
*/
public static Observable getCaseResource(String begTime, String endTime) {
return api.getCaseResource(AuthenticationHelper.getToken(), begTime, endTime);
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index 9567429..1e7c4a8 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -170,7 +170,17 @@
);
/**
- * 获取问题来源
+ * 获取单位处置情况
+ */
+ @GET("/departmentAssess/departmentAccess")
+ Observable getDeptHandleCondition(
+ @Header("token") String token,
+ @Query("begTime") String begTime,
+ @Query("endTime") String endTime
+ );
+
+ /**
+ * 获取城市基础数据
*/
@GET("/dcm/view/list")
Observable getCityBaseData(@Header("token") String token);
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f09aebf..5bbc8ef 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -118,6 +118,13 @@
}
/**
+ * 获取单位处置情况
+ */
+ public static Observable getDeptHandleCondition(String begTime, String endTime) {
+ return api.getDeptHandleCondition(AuthenticationHelper.getToken(), begTime, endTime);
+ }
+
+ /**
* 获取城市基础数据
*/
public static Observable getCityBaseData() {
@@ -125,7 +132,7 @@
}
/**
- * 获取城市基础数据
+ * 获取案卷来源
*/
public static Observable getCaseResource(String begTime, String endTime) {
return api.getCaseResource(AuthenticationHelper.getToken(), begTime, endTime);
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
index e2466ce..158302f 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
@@ -2,32 +2,35 @@
import android.content.Context;
import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
+import android.widget.RadioGroup;
import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding;
+import com.casic.dcms.model.DeptHandleConditionBean;
import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.ColorHub;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.BarEntry;
-import com.github.mikephil.charting.data.Entry;
-import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-import com.jzxiang.pickerview.data.Type;
-import com.jzxiang.pickerview.listener.OnDateSetListener;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.divider.ItemDecoration;
+import com.pengxh.androidx.lite.hub.FloatHub;
+import com.pengxh.androidx.lite.hub.LongHub;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
import java.util.List;
-import java.util.Random;
/**
* @author a203
@@ -38,115 +41,117 @@
public class DeptHandleConditionActivity extends AndroidxBaseActivity {
private static final String TAG = "DeptHandleConditionActivity";
- private static final List horizontalLabelName = Arrays.asList("销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实");
private final Context context = DeptHandleConditionActivity.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 = "";
+ private DataAnalysisViewModel dataAnalysisViewModel;
@Override
protected void setupTopBarLayout() {
ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
ImmersionBar.with(this).statusBarDarkFont(false).init();
- //TODO 这是模拟数据
- StringBuilder str = new StringBuilder();
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < i; j++) {
- str.append("x");
- }
- spinnerEntries.add(str.append("街道").toString());
- str.delete(0, str.length());
- }
- ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, spinnerEntries);
- arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- int dimension = (int) getResources().getDimension(R.dimen.titleViewHeight);
- viewBinding.titleBarLayout.titleSpinner.setDropDownVerticalOffset(dimension);
- viewBinding.titleBarLayout.titleSpinner.setAdapter(arrayAdapter);
- //默认选中第一条
- selectedStreet = spinnerEntries.get(0);
- viewBinding.titleBarLayout.titleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- //spinner 选中后显示字体的颜色设置
- TextView tv = (TextView) view;
- tv.setTextColor(ContextCompat.getColor(context, R.color.white));
- selectedStreet = spinnerEntries.get(i);
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
-
- }
- });
- //默认显示当前月的分析数据
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
+ viewBinding.titleBarLayout.titleView.setText(LocaleConstant.ANALYSIS_ITEMS.get(3));
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
}
@Override
protected void observeRequestState() {
-
+ dataAnalysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
protected void initData() {
- //初始化折线图
- 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);
- //初始化饼图
-// ChartUtil.initPieChart(this, viewBinding.streetPieChart);
- //设置数据
- //TODO 这是模拟数据
- 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);
- //初始化横向柱状图
-// ChartUtil.initBarChart(this, viewBinding.streetBarChart, horizontalLabelName);
- //设置数据
- //TODO 这是模拟数据
- for (int i = 0; i < horizontalLabelName.size(); i++) {
- barEntries.add(new BarEntry(i, new Random().nextInt(100)));
- }
- ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.deptHandleConditionModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(DeptHandleConditionBean conditionBean) {
+ if (conditionBean.getCode() == 200) {
+ int caseCount = 0;
+ List dataModels = conditionBean.getData();
+ List totalCheckBars = new ArrayList<>();
+ List checkedBars = new ArrayList<>();
+ List effectiveModels = new ArrayList<>();
+ for (int i = 0; i < dataModels.size(); i++) {
+ DeptHandleConditionBean.DataModel dataModel = dataModels.get(i);
+ if (!dataModel.getDepartName().equals("合计")) {
+ effectiveModels.add(dataModel);
+
+ caseCount += Integer.parseInt(dataModel.getTotalCheckNum());
+
+ totalCheckBars.add(new BarEntry(i, Integer.parseInt(dataModel.getTotalCheckNum())));
+ checkedBars.add(new BarEntry(i, Integer.parseInt(dataModel.getCheckedNum())));
+ }
+ }
+ viewBinding.caseCountView.setText("案卷数:" + caseCount);
+
+ ChartViewHelper.setBarChartData(viewBinding.horizontalBarChart, totalCheckBars, checkedBars);
+
+ //绑定列表
+ NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_resource_lv_l, effectiveModels) {
+ @Override
+ public void convertView(ViewHolder viewHolder, int position, DeptHandleConditionBean.DataModel item) {
+ //设置随机颜色
+ int[] color = ColorHub.generateColor(context);
+
+ viewHolder.setText(R.id.numberTagView, String.valueOf(position + 1))
+ .setBackgroundColor(R.id.numberTagView, color[0])
+ .setTextColor(R.id.numberTagView, color[1])
+ .setText(R.id.caseSourceView, item.getDepartName())
+ .setText(R.id.caseNumView, item.getTotalCheckNum());
+ }
+ };
+ viewBinding.caseResourceView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 75), FloatHub.dp2px(context, 15)));
+ viewBinding.caseResourceView.setAdapter(recyclerAdapter);
+ recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, DeptHandleConditionBean.DataModel dataModel) {
+
+ }
+ });
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ //默认加载当前时间往前一个月的
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
}
@Override
protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- String date = TimeOrDateUtil.timestampToYearMonth(millSeconds);
- viewBinding.titleBarLayout.dateView.setText(date);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
+ public void onClick(View v) {
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getDeptHandleCondition(startDate, endDate);
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ if (checkedId == R.id.oneMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getOneMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else if (checkedId == R.id.threeMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getThreeMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ }
}
});
}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index 9567429..1e7c4a8 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -170,7 +170,17 @@
);
/**
- * 获取问题来源
+ * 获取单位处置情况
+ */
+ @GET("/departmentAssess/departmentAccess")
+ Observable getDeptHandleCondition(
+ @Header("token") String token,
+ @Query("begTime") String begTime,
+ @Query("endTime") String endTime
+ );
+
+ /**
+ * 获取城市基础数据
*/
@GET("/dcm/view/list")
Observable getCityBaseData(@Header("token") String token);
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f09aebf..5bbc8ef 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -118,6 +118,13 @@
}
/**
+ * 获取单位处置情况
+ */
+ public static Observable getDeptHandleCondition(String begTime, String endTime) {
+ return api.getDeptHandleCondition(AuthenticationHelper.getToken(), begTime, endTime);
+ }
+
+ /**
* 获取城市基础数据
*/
public static Observable getCityBaseData() {
@@ -125,7 +132,7 @@
}
/**
- * 获取城市基础数据
+ * 获取案卷来源
*/
public static Observable getCaseResource(String begTime, String endTime) {
return api.getCaseResource(AuthenticationHelper.getToken(), begTime, endTime);
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
index e2466ce..158302f 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
@@ -2,32 +2,35 @@
import android.content.Context;
import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
+import android.widget.RadioGroup;
import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding;
+import com.casic.dcms.model.DeptHandleConditionBean;
import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.ColorHub;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.BarEntry;
-import com.github.mikephil.charting.data.Entry;
-import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-import com.jzxiang.pickerview.data.Type;
-import com.jzxiang.pickerview.listener.OnDateSetListener;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.divider.ItemDecoration;
+import com.pengxh.androidx.lite.hub.FloatHub;
+import com.pengxh.androidx.lite.hub.LongHub;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
import java.util.List;
-import java.util.Random;
/**
* @author a203
@@ -38,115 +41,117 @@
public class DeptHandleConditionActivity extends AndroidxBaseActivity {
private static final String TAG = "DeptHandleConditionActivity";
- private static final List horizontalLabelName = Arrays.asList("销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实");
private final Context context = DeptHandleConditionActivity.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 = "";
+ private DataAnalysisViewModel dataAnalysisViewModel;
@Override
protected void setupTopBarLayout() {
ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
ImmersionBar.with(this).statusBarDarkFont(false).init();
- //TODO 这是模拟数据
- StringBuilder str = new StringBuilder();
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < i; j++) {
- str.append("x");
- }
- spinnerEntries.add(str.append("街道").toString());
- str.delete(0, str.length());
- }
- ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, spinnerEntries);
- arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- int dimension = (int) getResources().getDimension(R.dimen.titleViewHeight);
- viewBinding.titleBarLayout.titleSpinner.setDropDownVerticalOffset(dimension);
- viewBinding.titleBarLayout.titleSpinner.setAdapter(arrayAdapter);
- //默认选中第一条
- selectedStreet = spinnerEntries.get(0);
- viewBinding.titleBarLayout.titleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- //spinner 选中后显示字体的颜色设置
- TextView tv = (TextView) view;
- tv.setTextColor(ContextCompat.getColor(context, R.color.white));
- selectedStreet = spinnerEntries.get(i);
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
-
- }
- });
- //默认显示当前月的分析数据
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
+ viewBinding.titleBarLayout.titleView.setText(LocaleConstant.ANALYSIS_ITEMS.get(3));
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
}
@Override
protected void observeRequestState() {
-
+ dataAnalysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
protected void initData() {
- //初始化折线图
- 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);
- //初始化饼图
-// ChartUtil.initPieChart(this, viewBinding.streetPieChart);
- //设置数据
- //TODO 这是模拟数据
- 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);
- //初始化横向柱状图
-// ChartUtil.initBarChart(this, viewBinding.streetBarChart, horizontalLabelName);
- //设置数据
- //TODO 这是模拟数据
- for (int i = 0; i < horizontalLabelName.size(); i++) {
- barEntries.add(new BarEntry(i, new Random().nextInt(100)));
- }
- ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.deptHandleConditionModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(DeptHandleConditionBean conditionBean) {
+ if (conditionBean.getCode() == 200) {
+ int caseCount = 0;
+ List dataModels = conditionBean.getData();
+ List totalCheckBars = new ArrayList<>();
+ List checkedBars = new ArrayList<>();
+ List effectiveModels = new ArrayList<>();
+ for (int i = 0; i < dataModels.size(); i++) {
+ DeptHandleConditionBean.DataModel dataModel = dataModels.get(i);
+ if (!dataModel.getDepartName().equals("合计")) {
+ effectiveModels.add(dataModel);
+
+ caseCount += Integer.parseInt(dataModel.getTotalCheckNum());
+
+ totalCheckBars.add(new BarEntry(i, Integer.parseInt(dataModel.getTotalCheckNum())));
+ checkedBars.add(new BarEntry(i, Integer.parseInt(dataModel.getCheckedNum())));
+ }
+ }
+ viewBinding.caseCountView.setText("案卷数:" + caseCount);
+
+ ChartViewHelper.setBarChartData(viewBinding.horizontalBarChart, totalCheckBars, checkedBars);
+
+ //绑定列表
+ NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_resource_lv_l, effectiveModels) {
+ @Override
+ public void convertView(ViewHolder viewHolder, int position, DeptHandleConditionBean.DataModel item) {
+ //设置随机颜色
+ int[] color = ColorHub.generateColor(context);
+
+ viewHolder.setText(R.id.numberTagView, String.valueOf(position + 1))
+ .setBackgroundColor(R.id.numberTagView, color[0])
+ .setTextColor(R.id.numberTagView, color[1])
+ .setText(R.id.caseSourceView, item.getDepartName())
+ .setText(R.id.caseNumView, item.getTotalCheckNum());
+ }
+ };
+ viewBinding.caseResourceView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 75), FloatHub.dp2px(context, 15)));
+ viewBinding.caseResourceView.setAdapter(recyclerAdapter);
+ recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, DeptHandleConditionBean.DataModel dataModel) {
+
+ }
+ });
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ //默认加载当前时间往前一个月的
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
}
@Override
protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- String date = TimeOrDateUtil.timestampToYearMonth(millSeconds);
- viewBinding.titleBarLayout.dateView.setText(date);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
+ public void onClick(View v) {
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getDeptHandleCondition(startDate, endDate);
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ if (checkedId == R.id.oneMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getOneMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else if (checkedId == R.id.threeMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getThreeMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ }
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
index 85fa4b2..dd7f28e 100644
--- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
@@ -4,6 +4,7 @@
import com.casic.dcms.model.CaseResourceBean;
import com.casic.dcms.model.CityBaseDataBean;
+import com.casic.dcms.model.DeptHandleConditionBean;
import com.casic.dcms.model.HighEventBean;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
@@ -24,6 +25,7 @@
public MutableLiveData cityBaseData = new MutableLiveData<>();
public MutableLiveData caseResourceData = new MutableLiveData<>();
public MutableLiveData highEventModel = new MutableLiveData<>();
+ public MutableLiveData deptHandleConditionModel = new MutableLiveData<>();
public void getCityBaseData() {
loadState.setValue(LoadState.Loading);
@@ -123,4 +125,37 @@
}
});
}
+
+ public void getDeptHandleCondition(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getDeptHandleCondition(begTime, endTime);
+ ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
+ @Override
+ public void onCompleted() {
+ loadState.setValue(LoadState.Success);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ loadState.setValue(LoadState.Fail);
+ }
+
+ @Override
+ public void onNext(ResponseBody responseBody) {
+ try {
+ String response = responseBody.string();
+ int responseCode = StringHelper.separateResponseCode(response);
+ if (responseCode == 200) {
+ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() {
+ }.getType());
+ deptHandleConditionModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
}
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5907d9c..f681423 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -226,6 +226,7 @@
+
diff --git a/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
new file mode 100644
index 0000000..d3e0780
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/model/DeptHandleConditionBean.java
@@ -0,0 +1,226 @@
+package com.casic.dcms.model;
+
+import java.util.List;
+
+public class DeptHandleConditionBean {
+
+ private int code;
+ private List data;
+ private String message;
+ private boolean success;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public boolean isSuccess() {
+ return success;
+ }
+
+ public void setSuccess(boolean success) {
+ this.success = success;
+ }
+
+ public static class DataModel {
+ private String checkedNum;
+ private String currentCheckNum;
+ private String delayCheckRate;
+ private String delayCheckedNum;
+ private String delayGrade;
+ private String delayTotalNum;
+ private String delayUnCheckRate;
+ private String delayUncheckGrade;
+ private String delayUncheckNum;
+ private String depId;
+ private String departName;
+ private String grade;
+ private String lastCheckNum;
+ private String redoGrade;
+ private String redoNum;
+ private String redoRate;
+ private String score;
+ private String totalCheckNum;
+ private String workGrade;
+ private String workRate;
+
+ public String getCheckedNum() {
+ return checkedNum;
+ }
+
+ public void setCheckedNum(String checkedNum) {
+ this.checkedNum = checkedNum;
+ }
+
+ public String getCurrentCheckNum() {
+ return currentCheckNum;
+ }
+
+ public void setCurrentCheckNum(String currentCheckNum) {
+ this.currentCheckNum = currentCheckNum;
+ }
+
+ public String getDelayCheckRate() {
+ return delayCheckRate;
+ }
+
+ public void setDelayCheckRate(String delayCheckRate) {
+ this.delayCheckRate = delayCheckRate;
+ }
+
+ public String getDelayCheckedNum() {
+ return delayCheckedNum;
+ }
+
+ public void setDelayCheckedNum(String delayCheckedNum) {
+ this.delayCheckedNum = delayCheckedNum;
+ }
+
+ public String getDelayGrade() {
+ return delayGrade;
+ }
+
+ public void setDelayGrade(String delayGrade) {
+ this.delayGrade = delayGrade;
+ }
+
+ public String getDelayTotalNum() {
+ return delayTotalNum;
+ }
+
+ public void setDelayTotalNum(String delayTotalNum) {
+ this.delayTotalNum = delayTotalNum;
+ }
+
+ public String getDelayUnCheckRate() {
+ return delayUnCheckRate;
+ }
+
+ public void setDelayUnCheckRate(String delayUnCheckRate) {
+ this.delayUnCheckRate = delayUnCheckRate;
+ }
+
+ public String getDelayUncheckGrade() {
+ return delayUncheckGrade;
+ }
+
+ public void setDelayUncheckGrade(String delayUncheckGrade) {
+ this.delayUncheckGrade = delayUncheckGrade;
+ }
+
+ public String getDelayUncheckNum() {
+ return delayUncheckNum;
+ }
+
+ public void setDelayUncheckNum(String delayUncheckNum) {
+ this.delayUncheckNum = delayUncheckNum;
+ }
+
+ public String getDepId() {
+ return depId;
+ }
+
+ public void setDepId(String depId) {
+ this.depId = depId;
+ }
+
+ public String getDepartName() {
+ return departName;
+ }
+
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+
+ public String getGrade() {
+ return grade;
+ }
+
+ public void setGrade(String grade) {
+ this.grade = grade;
+ }
+
+ public String getLastCheckNum() {
+ return lastCheckNum;
+ }
+
+ public void setLastCheckNum(String lastCheckNum) {
+ this.lastCheckNum = lastCheckNum;
+ }
+
+ public String getRedoGrade() {
+ return redoGrade;
+ }
+
+ public void setRedoGrade(String redoGrade) {
+ this.redoGrade = redoGrade;
+ }
+
+ public String getRedoNum() {
+ return redoNum;
+ }
+
+ public void setRedoNum(String redoNum) {
+ this.redoNum = redoNum;
+ }
+
+ public String getRedoRate() {
+ return redoRate;
+ }
+
+ public void setRedoRate(String redoRate) {
+ this.redoRate = redoRate;
+ }
+
+ public String getScore() {
+ return score;
+ }
+
+ public void setScore(String score) {
+ this.score = score;
+ }
+
+ public String getTotalCheckNum() {
+ return totalCheckNum;
+ }
+
+ public void setTotalCheckNum(String totalCheckNum) {
+ this.totalCheckNum = totalCheckNum;
+ }
+
+ public String getWorkGrade() {
+ return workGrade;
+ }
+
+ public void setWorkGrade(String workGrade) {
+ this.workGrade = workGrade;
+ }
+
+ public String getWorkRate() {
+ return workRate;
+ }
+
+ public void setWorkRate(String workRate) {
+ this.workRate = workRate;
+ }
+ }
+}
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 62f8271..4fbbff2 100644
--- a/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
+++ b/app/src/main/java/com/casic/dcms/utils/ChartViewHelper.java
@@ -3,8 +3,6 @@
import android.graphics.Color;
-import androidx.core.content.ContextCompat;
-
import com.casic.dcms.R;
import com.casic.dcms.base.BaseApplication;
import com.casic.dcms.widgets.DetailsMarkerView;
@@ -44,7 +42,6 @@
public class ChartViewHelper {
private static final String TAG = "ChartViewHelper";
- private static final DecimalFormat decimalFormat = new DecimalFormat("##0.00");
private static final String[] labelName = {"普通", "快速", "三包"};
private static void initPieChart(PieChart chart) {
@@ -83,6 +80,7 @@
dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
dataSet.setValueLineColor(Color.BLUE);
PieData data = new PieData(dataSet);
+ DecimalFormat decimalFormat = new DecimalFormat("##0.00");
data.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
@@ -96,6 +94,65 @@
chart.invalidate();
}
+ private static void initBarChart(HorizontalBarChart chart) {
+ chart.setDrawGridBackground(false);
+ chart.setDrawBorders(false);
+ chart.setScaleEnabled(false);
+ //去掉描述
+ chart.getDescription().setEnabled(false);
+ //设置图例位置
+ Legend legend = chart.getLegend();
+ legend.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);
+ legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
+ legend.setOrientation(Legend.LegendOrientation.HORIZONTAL);
+ legend.setWordWrapEnabled(true);
+
+ XAxis xAxis = chart.getXAxis();
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextSize(12f);
+ xAxis.setDrawLabels(false);//绘制标签 指x轴上的对应数值
+ xAxis.setDrawAxisLine(true);//是否绘制轴线
+ xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
+ xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+ //设置样式
+ YAxis rightAxis = chart.getAxisRight();
+ //设置图表右边的y轴禁用
+ rightAxis.setEnabled(false);
+ YAxis leftAxis = chart.getAxisLeft();
+ leftAxis.setAxisMinimum(0f);
+ }
+
+ public static void setBarChartData(HorizontalBarChart chart, List totalCheckBars, List checkedBars) {
+ initBarChart(chart);
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
+ //绑定数据
+ BarDataSet totalCheckBarDataSet = new BarDataSet(totalCheckBars, "派发数");
+ totalCheckBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ totalCheckBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarDataSet checkedBarDataSet = new BarDataSet(checkedBars, "处置数");
+ checkedBarDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));
+ checkedBarDataSet.setValueFormatter(new ValueFormatter() {
+ @Override
+ public String getFormattedValue(float value) {
+ return decimalFormat.format(value);
+ }
+ });
+
+ BarData barData = new BarData(totalCheckBarDataSet, checkedBarDataSet);
+ barData.setBarWidth(0.5f);
+ barData.groupBars(0f, 0.5f, 0);
+ chart.setData(barData);
+ chart.invalidate();
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////
+
public static void initLineChart(LineChart chart) {
chart.setDrawGridBackground(false);
chart.setDrawBorders(false);
@@ -110,7 +167,7 @@
chart.setScaleYEnabled(false);//Y轴不可缩放
//设置x轴
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setAxisMinimum(1f);
xAxis.setAxisMaximum(maxDay);
@@ -137,13 +194,13 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet totalDataSet = new LineDataSet(totalEntries, "上报案卷");
- totalDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- totalDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ totalDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ totalDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(totalDataSet);
LineDataSet handleDataSet = new LineDataSet(handleEntries, "已处理案卷");
- handleDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- handleDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ handleDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ handleDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(handleDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -156,18 +213,18 @@
List lineDataSets = new ArrayList<>();
//设置数据
LineDataSet commonDataSet = new LineDataSet(commonEntries, "普通上报");
- commonDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
- commonDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
+ commonDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//线条颜色
+ commonDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.onLineColor));//圆点颜色
lineDataSets.add(commonDataSet);
LineDataSet quickDataSet = new LineDataSet(quickEntries, "快速上报");
- quickDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//线条颜色
- quickDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
+ quickDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//线条颜色
+ quickDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.warnColor));//圆点颜色
lineDataSets.add(quickDataSet);
LineDataSet packageDataSet = new LineDataSet(packageEntries, "三包上报");
- packageDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
- packageDataSet.setCircleColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
+ packageDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//线条颜色
+ packageDataSet.setCircleColor(IntHub.convertColor(BaseApplication.get(), R.color.mainThemeColor));//圆点颜色
lineDataSets.add(packageDataSet);
LineData lineData = new LineData(lineDataSets);
@@ -186,7 +243,7 @@
chart.getLegend().setEnabled(false);
XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
+ xAxis.setTextColor(IntHub.convertColor(BaseApplication.get(), R.color.mainTextColor));
xAxis.setTextSize(12f);
xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
xAxis.setLabelCount(labelName.length); // 设置x轴上的标签个数
@@ -211,55 +268,8 @@
public static void setBarChartData(BarChart chart, List entries) {
//绑定数据
BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
- barDataSet.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return decimalFormat.format(value);
- }
- });
- BarData barData = new BarData(barDataSet);
- barData.setBarWidth(0.5f);
- chart.setData(barData);
- chart.invalidate();
- }
-
- public static void initBarChart(HorizontalBarChart chart, List labelName) {
- chart.setDrawGridBackground(false);
- chart.setDrawBorders(false);
- chart.setScaleEnabled(false);
- //去掉描述
- chart.getDescription().setEnabled(false);
- //去掉图例
- chart.getLegend().setEnabled(false);
-
- XAxis xAxis = chart.getXAxis();
- xAxis.setTextColor(ContextCompat.getColor(BaseApplication.get(), R.color.mainTextColor));
- xAxis.setTextSize(12f);
- xAxis.setDrawLabels(true);//绘制标签 指x轴上的对应数值
- xAxis.setLabelCount(labelName.size()); // 设置x轴上的标签个数
- xAxis.setValueFormatter(new ValueFormatter() {
- @Override
- public String getFormattedValue(float value) {
- return labelName.get((int) value);
- }
- });
- xAxis.setDrawAxisLine(true);//是否绘制轴线
- xAxis.setDrawGridLines(false);//设置x轴上每个点对应的线
- xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
- chart.setExtraBottomOffset(5f);//解决X轴显示不完全问题
- //设置样式
- YAxis rightAxis = chart.getAxisRight();
- //设置图表右边的y轴禁用
- rightAxis.setEnabled(false);
- YAxis leftAxis = chart.getAxisLeft();
- leftAxis.setAxisMinimum(0f);
- }
-
- public static void setBarChartData(HorizontalBarChart chart, List entries) {
- //绑定数据
- BarDataSet barDataSet = new BarDataSet(entries, "");
- barDataSet.setColor(ContextCompat.getColor(BaseApplication.get(), R.color.barChartColor));
+ barDataSet.setColor(IntHub.convertColor(BaseApplication.get(), R.color.barChartColor));
+ DecimalFormat decimalFormat = new DecimalFormat("##0");
barDataSet.setValueFormatter(new ValueFormatter() {
@Override
public String getFormattedValue(float value) {
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
index 9567429..1e7c4a8 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java
@@ -170,7 +170,17 @@
);
/**
- * 获取问题来源
+ * 获取单位处置情况
+ */
+ @GET("/departmentAssess/departmentAccess")
+ Observable getDeptHandleCondition(
+ @Header("token") String token,
+ @Query("begTime") String begTime,
+ @Query("endTime") String endTime
+ );
+
+ /**
+ * 获取城市基础数据
*/
@GET("/dcm/view/list")
Observable getCityBaseData(@Header("token") String token);
diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
index f09aebf..5bbc8ef 100644
--- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
+++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java
@@ -118,6 +118,13 @@
}
/**
+ * 获取单位处置情况
+ */
+ public static Observable getDeptHandleCondition(String begTime, String endTime) {
+ return api.getDeptHandleCondition(AuthenticationHelper.getToken(), begTime, endTime);
+ }
+
+ /**
* 获取城市基础数据
*/
public static Observable getCityBaseData() {
@@ -125,7 +132,7 @@
}
/**
- * 获取城市基础数据
+ * 获取案卷来源
*/
public static Observable getCaseResource(String begTime, String endTime) {
return api.getCaseResource(AuthenticationHelper.getToken(), begTime, endTime);
diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
index e2466ce..158302f 100644
--- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java
@@ -2,32 +2,35 @@
import android.content.Context;
import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
+import android.widget.RadioGroup;
import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
import com.casic.dcms.R;
import com.casic.dcms.databinding.ActivityDeptHandleConditionBinding;
+import com.casic.dcms.model.DeptHandleConditionBean;
import com.casic.dcms.utils.ChartViewHelper;
+import com.casic.dcms.utils.ColorHub;
+import com.casic.dcms.utils.DialogHelper;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.TimeOrDateUtil;
+import com.casic.dcms.vm.DataAnalysisViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
import com.github.mikephil.charting.data.BarEntry;
-import com.github.mikephil.charting.data.Entry;
-import com.github.mikephil.charting.data.PieEntry;
import com.gyf.immersionbar.ImmersionBar;
-import com.jzxiang.pickerview.TimePickerDialog;
-import com.jzxiang.pickerview.data.Type;
-import com.jzxiang.pickerview.listener.OnDateSetListener;
+import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter;
+import com.pengxh.androidx.lite.adapter.ViewHolder;
import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.divider.ItemDecoration;
+import com.pengxh.androidx.lite.hub.FloatHub;
+import com.pengxh.androidx.lite.hub.LongHub;
import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager;
+import com.pengxh.androidx.lite.vm.LoadState;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
import java.util.List;
-import java.util.Random;
/**
* @author a203
@@ -38,115 +41,117 @@
public class DeptHandleConditionActivity extends AndroidxBaseActivity {
private static final String TAG = "DeptHandleConditionActivity";
- private static final List horizontalLabelName = Arrays.asList("销案", "不予立案", "结案", "待结案", "待核查", "待处理", "待核实");
private final Context context = DeptHandleConditionActivity.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 = "";
+ private DataAnalysisViewModel dataAnalysisViewModel;
@Override
protected void setupTopBarLayout() {
ImmerseStatusBarManager.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor));
ImmersionBar.with(this).statusBarDarkFont(false).init();
- //TODO 这是模拟数据
- StringBuilder str = new StringBuilder();
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < i; j++) {
- str.append("x");
- }
- spinnerEntries.add(str.append("街道").toString());
- str.delete(0, str.length());
- }
- ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, spinnerEntries);
- arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- int dimension = (int) getResources().getDimension(R.dimen.titleViewHeight);
- viewBinding.titleBarLayout.titleSpinner.setDropDownVerticalOffset(dimension);
- viewBinding.titleBarLayout.titleSpinner.setAdapter(arrayAdapter);
- //默认选中第一条
- selectedStreet = spinnerEntries.get(0);
- viewBinding.titleBarLayout.titleSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView> adapterView, View view, int i, long l) {
- //spinner 选中后显示字体的颜色设置
- TextView tv = (TextView) view;
- tv.setTextColor(ContextCompat.getColor(context, R.color.white));
- selectedStreet = spinnerEntries.get(i);
- }
-
- @Override
- public void onNothingSelected(AdapterView> adapterView) {
-
- }
- });
- //默认显示当前月的分析数据
- viewBinding.titleBarLayout.dateView.setText(TimeOrDateUtil.timestampToYearMonth(System.currentTimeMillis()));
+ viewBinding.titleBarLayout.titleView.setText(LocaleConstant.ANALYSIS_ITEMS.get(3));
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
}
@Override
protected void observeRequestState() {
-
+ dataAnalysisViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
}
@Override
protected void initData() {
- //初始化折线图
- 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);
- //初始化饼图
-// ChartUtil.initPieChart(this, viewBinding.streetPieChart);
- //设置数据
- //TODO 这是模拟数据
- 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);
- //初始化横向柱状图
-// ChartUtil.initBarChart(this, viewBinding.streetBarChart, horizontalLabelName);
- //设置数据
- //TODO 这是模拟数据
- for (int i = 0; i < horizontalLabelName.size(); i++) {
- barEntries.add(new BarEntry(i, new Random().nextInt(100)));
- }
- ChartViewHelper.setBarChartData(viewBinding.streetBarChart, barEntries);
+ dataAnalysisViewModel = new ViewModelProvider(this).get(DataAnalysisViewModel.class);
+ dataAnalysisViewModel.deptHandleConditionModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(DeptHandleConditionBean conditionBean) {
+ if (conditionBean.getCode() == 200) {
+ int caseCount = 0;
+ List dataModels = conditionBean.getData();
+ List totalCheckBars = new ArrayList<>();
+ List checkedBars = new ArrayList<>();
+ List effectiveModels = new ArrayList<>();
+ for (int i = 0; i < dataModels.size(); i++) {
+ DeptHandleConditionBean.DataModel dataModel = dataModels.get(i);
+ if (!dataModel.getDepartName().equals("合计")) {
+ effectiveModels.add(dataModel);
+
+ caseCount += Integer.parseInt(dataModel.getTotalCheckNum());
+
+ totalCheckBars.add(new BarEntry(i, Integer.parseInt(dataModel.getTotalCheckNum())));
+ checkedBars.add(new BarEntry(i, Integer.parseInt(dataModel.getCheckedNum())));
+ }
+ }
+ viewBinding.caseCountView.setText("案卷数:" + caseCount);
+
+ ChartViewHelper.setBarChartData(viewBinding.horizontalBarChart, totalCheckBars, checkedBars);
+
+ //绑定列表
+ NormalRecyclerAdapter recyclerAdapter = new NormalRecyclerAdapter(R.layout.item_case_resource_lv_l, effectiveModels) {
+ @Override
+ public void convertView(ViewHolder viewHolder, int position, DeptHandleConditionBean.DataModel item) {
+ //设置随机颜色
+ int[] color = ColorHub.generateColor(context);
+
+ viewHolder.setText(R.id.numberTagView, String.valueOf(position + 1))
+ .setBackgroundColor(R.id.numberTagView, color[0])
+ .setTextColor(R.id.numberTagView, color[1])
+ .setText(R.id.caseSourceView, item.getDepartName())
+ .setText(R.id.caseNumView, item.getTotalCheckNum());
+ }
+ };
+ viewBinding.caseResourceView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 75), FloatHub.dp2px(context, 15)));
+ viewBinding.caseResourceView.setAdapter(recyclerAdapter);
+ recyclerAdapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() {
+ @Override
+ public void onItemClicked(int position, DeptHandleConditionBean.DataModel dataModel) {
+
+ }
+ });
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ //默认加载当前时间往前一个月的
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
}
@Override
protected void initEvent() {
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ viewBinding.selectCalendarButton.setOnClickListener(new View.OnClickListener() {
@Override
- public void onClick(View view) {
- new TimePickerDialog.Builder()
- .setThemeColor(ContextCompat.getColor(context, R.color.mainThemeColor))
- .setTitleStringId("选择日期")
- .setWheelItemTextSize(16)
- .setCyclic(false)
- .setMinMillseconds(System.currentTimeMillis() - LocaleConstant.FIVE_YEARS)
- .setMaxMillseconds(System.currentTimeMillis())
- .setType(Type.YEAR_MONTH)
- .setCallBack(new OnDateSetListener() {
- @Override
- public void onDateSet(TimePickerDialog timePickerView, long millSeconds) {
- String date = TimeOrDateUtil.timestampToYearMonth(millSeconds);
- viewBinding.titleBarLayout.dateView.setText(date);
- }
- }).build().show(getSupportFragmentManager(), "year_month");
+ public void onClick(View v) {
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ dataAnalysisViewModel.getDeptHandleCondition(startDate, endDate);
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ if (checkedId == R.id.oneMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getOneMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else if (checkedId == R.id.threeMonthRadioButton) {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getThreeMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ } else {
+ dataAnalysisViewModel.getDeptHandleCondition(TimeOrDateUtil.getSixMonthDate(), LongHub.timestampToDate(System.currentTimeMillis()));
+ }
}
});
}
diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
index 85fa4b2..dd7f28e 100644
--- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
+++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java
@@ -4,6 +4,7 @@
import com.casic.dcms.model.CaseResourceBean;
import com.casic.dcms.model.CityBaseDataBean;
+import com.casic.dcms.model.DeptHandleConditionBean;
import com.casic.dcms.model.HighEventBean;
import com.casic.dcms.utils.StringHelper;
import com.casic.dcms.utils.retrofit.RetrofitServiceManager;
@@ -24,6 +25,7 @@
public MutableLiveData cityBaseData = new MutableLiveData<>();
public MutableLiveData caseResourceData = new MutableLiveData<>();
public MutableLiveData highEventModel = new MutableLiveData<>();
+ public MutableLiveData deptHandleConditionModel = new MutableLiveData<>();
public void getCityBaseData() {
loadState.setValue(LoadState.Loading);
@@ -123,4 +125,37 @@
}
});
}
+
+ public void getDeptHandleCondition(String begTime, String endTime) {
+ loadState.setValue(LoadState.Loading);
+ Observable observable = RetrofitServiceManager.getDeptHandleCondition(begTime, endTime);
+ ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() {
+ @Override
+ public void onCompleted() {
+ loadState.setValue(LoadState.Success);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ loadState.setValue(LoadState.Fail);
+ }
+
+ @Override
+ public void onNext(ResponseBody responseBody) {
+ try {
+ String response = responseBody.string();
+ int responseCode = StringHelper.separateResponseCode(response);
+ if (responseCode == 200) {
+ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() {
+ }.getType());
+ deptHandleConditionModel.setValue(resultBean);
+ } else {
+ loadState.setValue(LoadState.Fail);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
}
diff --git a/app/src/main/res/layout/activity_dept_handle_condition.xml b/app/src/main/res/layout/activity_dept_handle_condition.xml
index 0bd5447..7a7ecc8 100644
--- a/app/src/main/res/layout/activity_dept_handle_condition.xml
+++ b/app/src/main/res/layout/activity_dept_handle_condition.xml
@@ -7,57 +7,96 @@
+ layout="@layout/include_base_title" />
-
+ android:layout_marginHorizontal="@dimen/dp_10"
+ android:layout_marginTop="@dimen/dp_10"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
+
\ No newline at end of file