diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoDetailActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoDetailActivity.kt index c574657..6ad63a1 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoDetailActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoDetailActivity.kt @@ -133,6 +133,15 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.dpmAlarmMinValue){ + binding.itemXwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getyDisplacement()>params.dpmAlarmMinValue){ + binding.itemYwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getzDisplacement()>params.dpmAlarmMinValue){ + binding.itemZwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } }else{ binding.itemWybjz.llAll.visibility= View.GONE } @@ -141,6 +150,15 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.dpmAlarmMaxValue){ + binding.itemXwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getyDisplacement()>params.dpmAlarmMaxValue){ + binding.itemYwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getzDisplacement()>params.dpmAlarmMaxValue){ + binding.itemZwy.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } }else{ binding.itemWygzz.llAll.visibility= View.GONE } @@ -149,6 +167,15 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.spdAlarmMinValue){ + binding.itemXsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getySpeed()>params.spdAlarmMinValue){ + binding.itemYsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getzSpeed()>params.spdAlarmMinValue){ + binding.itemZsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } }else{ binding.itemSdbjz.llAll.visibility= View.GONE } @@ -157,6 +184,15 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBindingparams.spdAlarmMaxValue){ + binding.itemXsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getySpeed()>params.spdAlarmMaxValue){ + binding.itemYsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } + if(data.getzSpeed()>params.spdAlarmMaxValue){ + binding.itemZsd.tvBjz.setTextColor(Color.parseColor("#e9260f")) + } }else{ binding.itemSdgzz.llAll.visibility= View.GONE } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoLineChartActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoLineChartActivity.java index 30cb6c1..169ecda 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoLineChartActivity.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceAlarmInfoLineChartActivity.java @@ -73,8 +73,12 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity deviceAlarmDataList = new ArrayList<>(); + private double maxTemperature=0; + private double maxAddSpeed=0; - private ArrayList xlabellistdatas = new ArrayList<>();; + private ArrayList xLabelListData = new ArrayList<>(); + private ArrayList xLabelListDataAddSpeed = new ArrayList<>(); + private ArrayList xLabelListDataSpeed = new ArrayList<>(); @Override protected ActivityDeviceAlarmInfoLineChartBinding getBinding() { @@ -115,6 +119,10 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity { binding.tvSt.setText(outPutDate+":00"); + if(deviceCode!=null){ + showLog(deviceCode); + getDeviceAlarmInfoLineChartData(); + } }); dialog.show(); } @@ -130,6 +138,10 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity { binding.tvEt.setText(outPutDate+":59"); + if(deviceCode!=null){ + showLog(deviceCode); + getDeviceAlarmInfoLineChartData(); + } }); dialog.show(); } @@ -169,6 +181,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity { @@ -180,6 +193,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity { @@ -260,26 +274,15 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity entries1 = new ArrayList<>(); - for (int i = 0; i < deviceAlarmDataList.size(); i++) { - try { - DeviceAlarmInfoLineChartBean.DeviceVibrationMonitoringData item = deviceAlarmDataList.get(i); - entries1.add(new Entry(i, Float.parseFloat(item.getTemperature().toString()))); - - Date date = sdf.parse(item.getDeviceTime()); - if(date != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - xlabellistdatas.add(sdfHourMinute.format(calendar.getTime())); - } - } catch (ParseException e) { - throw new RuntimeException(e); - } + if(binding.rb1.isChecked()){ + renderTemperature(); + } + if(binding.rb2.isChecked()){ + renderAddSpeed(); } - showLog(String.valueOf(deviceAlarmDataList.size())); - setDatas(entries1); }else{ showLog("is emply"); + setDes(); } } @@ -289,6 +292,56 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity entries1 = new ArrayList<>(); + for (int i = 0; i < deviceAlarmDataList.size(); i++) { + try { + DeviceAlarmInfoLineChartBean.DeviceVibrationMonitoringData item = deviceAlarmDataList.get(i); + entries1.add(new Entry(i, Float.parseFloat(item.getTemperature().toString()))); + + Date date = sdf.parse(item.getDeviceTime()); + if(date != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + xLabelListData.add(sdfHourMinute.format(calendar.getTime())); + } + if(item.getTemperature()!=null&& item.getTemperature() >maxTemperature){ + maxTemperature=item.getTemperature(); + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + showLog(String.valueOf(deviceAlarmDataList.size())); + showLog("maxTemperature:"+String.valueOf(maxTemperature)); + if(maxTemperature<20){ + maxTemperature=30; + }else if(maxTemperature>=20&&maxTemperature<30){ + maxTemperature=40; + }else if(maxTemperature>=30&&maxTemperature<40){ + maxTemperature=50; + }else if(maxTemperature>=40&&maxTemperature<50){ + maxTemperature=60; + }else if(maxTemperature>=50&&maxTemperature<60){ + maxTemperature=70; + }else if(maxTemperature>=60&&maxTemperature<70){ + maxTemperature=80; + }else if(maxTemperature>=70&&maxTemperature<80){ + maxTemperature=90; + }else if(maxTemperature>=80&&maxTemperature<90){ + maxTemperature=100; + }else if(maxTemperature>=90&&maxTemperature<100){ + maxTemperature=110; + }else{ + maxTemperature=maxTemperature+10; + } + showLog("maxTemperature:"+String.valueOf(maxTemperature)); + setDataTemperature(entries1); + } + //初始化折线图 private void setDes() { Description description = new Description(); description.setText(""); @@ -306,23 +359,49 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity datas) { + private void setDataTemperature(List datas) { + // 清除所有数据 + binding.linechart.clear(); + binding.linechart.invalidate(); // 重绘视图 + String deviceNameLine = deviceName+"温度"; List sets = new ArrayList<>(); LineDataSet dataSet1 = new LineDataSet(datas, deviceNameLine); dataSet1.setValueTextSize(12); dataSet1.setValueTextColor(Color.parseColor("#FC863E")); dataSet1.setMode(LineDataSet.Mode.CUBIC_BEZIER); - dataSet1.setLineWidth(1); - dataSet1.setCircleHoleRadius(4); - dataSet1.enableDashedLine(5, 5, 0); + dataSet1.setLineWidth(2); + dataSet1.setCircleHoleRadius(3); + //dataSet1.enableDashedLine(5, 5, 0); dataSet1.setCircleColor(Color.parseColor("#FC863E")); dataSet1.setColor(Color.parseColor("#FC863E")); dataSet1.setDrawHighlightIndicators(false); dataSet1.setDrawFilled(true); dataSet1.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")})); - dataSet1.setLineWidth(1); + dataSet1.setLineWidth(2); dataSet1.setDrawValues(false); sets.add(dataSet1); @@ -339,7 +418,7 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity entriesXAddSpeed = new ArrayList<>(); + List entriesYAddSpeed = new ArrayList<>(); + List entriesZAddSpeed = new ArrayList<>(); + for (int i = 0; i < deviceAlarmDataList.size(); i++) { + try { + DeviceAlarmInfoLineChartBean.DeviceVibrationMonitoringData item = deviceAlarmDataList.get(i); + + entriesXAddSpeed.add(new Entry(i, Float.parseFloat(item.getxAcceleration().toString()))); + entriesYAddSpeed.add(new Entry(i, Float.parseFloat(item.getyAcceleration().toString()))); + entriesZAddSpeed.add(new Entry(i, Float.parseFloat(item.getzAcceleration().toString()))); + + Date date = sdf.parse(item.getDeviceTime()); + if(date != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + xLabelListDataAddSpeed.add(sdfHourMinute.format(calendar.getTime())); + } + if(item.getxAcceleration()!=null&& item.getxAcceleration() >maxAddSpeed){ + maxAddSpeed=item.getxAcceleration(); + } + if(item.getyAcceleration()!=null&& item.getyAcceleration() >maxAddSpeed){ + maxAddSpeed=item.getyAcceleration(); + } + if(item.getzAcceleration()!=null&& item.getzAcceleration() >maxAddSpeed){ + maxAddSpeed=item.getzAcceleration(); + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + showLog(String.valueOf(deviceAlarmDataList.size())); + showLog("maxAddSpeed:"+String.valueOf(maxAddSpeed)); + if(maxAddSpeed<2.5){ + maxAddSpeed=2.5; + }else if(maxAddSpeed>=2.5&&maxAddSpeed<4.5){ + maxAddSpeed=5; + }else if(maxAddSpeed>=4.5&&maxAddSpeed<9){ + maxAddSpeed=10; + }else if(maxAddSpeed>=9&&maxAddSpeed<15){ + maxAddSpeed=16; + }else if(maxAddSpeed>=15&&maxAddSpeed<30){ + maxAddSpeed=31; + }else if(maxAddSpeed>=30&&maxAddSpeed<50){ + maxAddSpeed=60; + }else if(maxAddSpeed>=50&&maxAddSpeed<75){ + maxAddSpeed=80; + }else if(maxAddSpeed>=75&&maxAddSpeed<95){ + maxAddSpeed=100; + }else if(maxAddSpeed>=95&&maxAddSpeed<125){ + maxAddSpeed=130; + }else{ + maxAddSpeed=maxAddSpeed+5; + } + showLog("maxAddSpeed:"+String.valueOf(maxAddSpeed)); + setDataAddSpeed(entriesXAddSpeed,entriesYAddSpeed,entriesZAddSpeed); + } + private void setDataAddSpeed(List entriesXAddSpeed,List entriesYAddSpeed,List entriesZAddSpeed) { + // 清除所有数据 + binding.linechart.clear(); + binding.linechart.invalidate(); // 重绘视图 + + List sets = new ArrayList<>(); + + String deviceNameLineX = deviceName+"X轴加速度"; + LineDataSet dataSet1 = new LineDataSet(entriesXAddSpeed, deviceNameLineX); + dataSet1.setValueTextSize(12); + dataSet1.setValueTextColor(Color.parseColor("#ff8000")); + dataSet1.setMode(LineDataSet.Mode.CUBIC_BEZIER); + dataSet1.setLineWidth(2); + dataSet1.setCircleHoleRadius(3); + //dataSet1.enableDashedLine(5, 5, 0); + dataSet1.setCircleColor(Color.parseColor("#ff8000")); + dataSet1.setColor(Color.parseColor("#ff8000")); + dataSet1.setDrawHighlightIndicators(false); + //dataSet1.setDrawFilled(true); + //dataSet1.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")})); + dataSet1.setLineWidth(2); + dataSet1.setDrawValues(false); + sets.add(dataSet1); + + String deviceNameLineY = deviceName+"Y轴加速度"; + LineDataSet dataSet2 = new LineDataSet(entriesYAddSpeed, deviceNameLineY); + dataSet2.setValueTextSize(12); + dataSet2.setValueTextColor(Color.parseColor("#0080ff")); + dataSet2.setMode(LineDataSet.Mode.CUBIC_BEZIER); + dataSet2.setLineWidth(2); + dataSet2.setCircleHoleRadius(3); + //dataSet2.enableDashedLine(5, 5, 0); + dataSet2.setCircleColor(Color.parseColor("#0080ff")); + dataSet2.setColor(Color.parseColor("#0080ff")); + dataSet2.setDrawHighlightIndicators(false); + //dataSet2.setDrawFilled(true); + //dataSet2.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")})); + dataSet2.setLineWidth(2); + dataSet2.setDrawValues(false); + sets.add(dataSet2); + + String deviceNameLineZ = deviceName+"Z轴加速度"; + LineDataSet dataSet3 = new LineDataSet(entriesZAddSpeed, deviceNameLineZ); + dataSet3.setValueTextSize(12); + dataSet3.setValueTextColor(Color.parseColor("#80ff00")); + dataSet3.setMode(LineDataSet.Mode.CUBIC_BEZIER); + dataSet3.setLineWidth(2); + dataSet3.setCircleHoleRadius(3); + //dataSet3.enableDashedLine(5, 5, 0); + dataSet3.setCircleColor(Color.parseColor("#80ff00")); + dataSet3.setColor(Color.parseColor("#80ff00")); + dataSet3.setDrawHighlightIndicators(false); + //dataSet3.setDrawFilled(true); + //dataSet3.setFillDrawable(new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{Color.argb(127, 235, 170, 106), Color.parseColor("#00FA5544")})); + dataSet3.setLineWidth(2); + dataSet3.setDrawValues(false); + sets.add(dataSet3); + + LineData lineData = new LineData(sets); + binding.linechart.setData(lineData); + binding.linechart.invalidate(); + + XAxis xAxis = binding.linechart.getXAxis(); + xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); + xAxis.setAxisMinimum(1);//设置x轴最小 + xAxis.setTextSize(12); + //xAxis.setTextColor(Color.parseColor("#FC863E")); + xAxis.setEnabled(true);//是否显示x轴是否禁用 + xAxis.setDrawLabels(true); //设置x轴标签 即x轴上显示的数值 + xAxis.setDrawGridLines(true);//是否设置x轴上每个点对应的线 即 竖向的网格线 + xAxis.enableGridDashedLine(2, 2, 2); //竖线 虚线样式 lineLength控制虚线段的长度 spaceLength控制线之间的空间 + xAxis.setLabelRotationAngle(40f);//设置x轴标签的旋转角度 + String[] timearray = xLabelListDataAddSpeed.toArray(new String[xLabelListDataAddSpeed.size()]); + xAxis.setValueFormatter(new IndexAxisValueFormatter(timearray)); + YAxis yAxis = binding.linechart.getAxisRight(); + yAxis.setEnabled(false); + + //设置左边Y轴的样式 + YAxis axisLeft = binding.linechart.getAxisLeft(); + axisLeft.setTextSize(12); + + axisLeft.setAxisMinimum(0f); + axisLeft.setAxisMaximum((float) maxAddSpeed); + + //设置字体颜色 + //axisLeft.setTextColor(Color.parseColor("#FC863E")); + + float ratio = (float) xLabelListDataAddSpeed.size() / (float) 10; + if (ratio < 1) { + ratio = 1.0f; + } + //显示的时候是按照多大的比率缩放显示,1f表示不放大缩小 + //着重说明一下下面代码的用途 + /** + * 先将缩放比设置成0后,再去设置你想要的缩放比。 + * 若不这样做的话,在当前页面重新加载数据时,你所设置的缩放比会失效,并且出现你意向不到的显示问题。 + * 如果你的图表只在页面加载一次的话不需要这么做。 + */ + binding.linechart.zoom(0f, 1f, 0, 0); + binding.linechart.zoom(ratio, 1f, 0, 0); + //设置为不可缩放 + binding.linechart.setScaleEnabled(false); + //设置为可左右滑动 + binding.linechart.setDragEnabled(true); + } } \ No newline at end of file