diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f9e8484..aee43fe 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1041,7 +1041,7 @@ android:windowSoftInputMode="adjustResize|stateHidden" /> () { private var deviceCode:String?=null + private var deviceName:String?=null + override fun getViewBinding() = ActivityDeviceAlarmInfoDetailBinding.inflate(layoutInflater) override fun getToolbar() = binding.toolbarView.toolbar @@ -21,6 +23,7 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBinding { private String deviceCode; + private String deviceName; + //格式化日期的对象(转化成习惯的时间格式) + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdfHourMinute = new SimpleDateFormat("HH:mm"); private List deviceAlarmDataList = new ArrayList<>(); + private ArrayList xlabellistdatas = new ArrayList<>();; + @Override protected ActivityDeviceAlarmInfoLineChartBinding getBinding() { return ActivityDeviceAlarmInfoLineChartBinding.inflate(LayoutInflater.from(this)); @@ -57,57 +91,161 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity { + try { + Date date = sdf.parse(binding.tvSt.getText().toString()); + if(date != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + DateTimeMinutePickDialog dialog = new DateTimeMinutePickDialog(context, calendar, true,true, (outPutDate, outPutDate1, outPutDate2) -> { + binding.tvSt.setText(outPutDate+":00"); + }); + dialog.show(); + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + }); + binding.tvEt.setOnClickListener(view -> { + try { + Date date = sdf.parse(binding.tvEt.getText().toString()); + if(date != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + DateTimeMinutePickDialog dialog = new DateTimeMinutePickDialog(context, calendar, true,true, (outPutDate, outPutDate1, outPutDate2) -> { + binding.tvEt.setText(outPutDate+":59"); + }); + dialog.show(); + } + } catch (ParseException e) { + throw new RuntimeException(e); + } + }); + + initRadioGroup(); + String deviceCodeTemp = getIntent().getStringExtra("deviceCode"); if(deviceCodeTemp != null&&deviceCodeTemp.contains("\"")){ deviceCode=deviceCodeTemp.replace("\"","").trim(); } + String deviceNameTemp = getIntent().getStringExtra("deviceName"); + if(deviceNameTemp != null&&deviceNameTemp.contains("\"")){ + deviceName=deviceNameTemp.replace("\"","").trim(); + } } @Override protected void initData() { - //http://10.19.0.17:1700/dserver/device/vibration/monitoring/list?deviceCode=002c005e&startTime=2026-01-21+14:37:00&endTime=2026-01-22+23:59:59&v=1769063841074 - /** - * deviceCode - * 002c005e - * startTime - * 2026-01-21 14:37:00 - * endTime - * 2026-01-22 23:59:59 - * v - * 1769063841074 - */ + setDes(); if(deviceCode!=null){ showLog(deviceCode); getDeviceAlarmInfoLineChartData(); } } - public void getDeviceAlarmInfoLineChartData() { - //格式化日期的对象(转化成习惯的时间格式) - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd"); - //静态方法getInstance()使用默认时区和语言环境获得一个日历。 - Calendar calendar = Calendar.getInstance(); - //输出当前系统时间; - //System.out.println("当前系统时间: "+sdFormat.format(calendar.getTime())); - //add()增加日期,以天为单位(Calendar封装了很多静态的操作时间的单位) - //增加10天,负数则为减少天数 - calendar.add(Calendar.DATE, -1); - //输出增加10天后的时间; - String startTime = sdf.format(calendar.getTime()); - showLog("startTime: "+startTime); - Calendar calendarEnd = Calendar.getInstance(); - String endTime = sdfDay.format(calendarEnd.getTime())+" 23:59:59"; - showLog("endTime: "+endTime); - - + private void initRadioGroup(){ + binding.rb1.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(true); + binding.rb2.setChecked(false); + binding.rb3.setChecked(false); + binding.rb4.setChecked(false); + binding.rb5.setChecked(false); + binding.rb6.setChecked(false); + binding.rb7.setChecked(false); + } + }); + binding.rb2.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(true); + binding.rb3.setChecked(false); + binding.rb4.setChecked(false); + binding.rb5.setChecked(false); + binding.rb6.setChecked(false); + binding.rb7.setChecked(false); + } + }); + binding.rb3.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(false); + binding.rb3.setChecked(true); + binding.rb4.setChecked(false); + binding.rb5.setChecked(false); + binding.rb6.setChecked(false); + binding.rb7.setChecked(false); + } + }); + binding.rb4.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(false); + binding.rb3.setChecked(false); + binding.rb4.setChecked(true); + binding.rb5.setChecked(false); + binding.rb6.setChecked(false); + binding.rb7.setChecked(false); + } + }); + binding.rb5.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(false); + binding.rb3.setChecked(false); + binding.rb4.setChecked(false); + binding.rb5.setChecked(true); + binding.rb6.setChecked(false); + binding.rb7.setChecked(false); + } + }); + binding.rb6.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(false); + binding.rb3.setChecked(false); + binding.rb4.setChecked(false); + binding.rb5.setChecked(false); + binding.rb6.setChecked(true); + binding.rb7.setChecked(false); + } + }); + binding.rb7.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(isChecked){ + binding.rb1.setChecked(false); + binding.rb2.setChecked(false); + binding.rb3.setChecked(false); + binding.rb4.setChecked(false); + binding.rb5.setChecked(false); + binding.rb6.setChecked(false); + binding.rb7.setChecked(true); + } + }); + } + public void getDeviceAlarmInfoLineChartData() { String url = Contans.IP + Contans.DeviceAlermInfoDataListUrl; Request request = NoHttp.createStringRequest(url, RequestMethod.GET); request.add("deviceCode", deviceCode); - request.add("startTime", startTime); - request.add("endTime", endTime); + request.add("startTime", binding.tvSt.getText().toString()); + request.add("endTime", binding.tvEt.getText().toString()); NohttpUtils.getInstance().add(this,0, request, new HttpListener() { @@ -121,7 +259,27 @@ 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); + } + } + showLog(String.valueOf(deviceAlarmDataList.size())); + setDatas(entries1); + }else{ + showLog("is emply"); } } @@ -131,4 +289,80 @@ public class DeviceAlarmInfoLineChartActivity extends BaseViewBindingActivity datas) { + 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.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.setDrawValues(false); +// dataSet1.setValueFormatter(new MyValueFormatter()); + + sets.add(dataSet1); + 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(8); + 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 = xlabellistdatas.toArray(new String[xlabellistdatas.size()]); + xAxis.setValueFormatter(new IndexAxisValueFormatter(timearray)); + YAxis yAxis = binding.linechart.getAxisRight(); + yAxis.setEnabled(false); + + float ratio = (float) xlabellistdatas.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 diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt index 57e68d9..e87d121 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt @@ -240,6 +240,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { binding.etUsername.setText("ZHPS_Admin") binding.etPassword.setText("Rehome.zhps@996") +// binding.etUsername.setText("310249") +// binding.etPassword.setText("GZgs#@0249") + //公司内网215管理员 // binding.etUsername.setText("ZHPS_Admin") diff --git a/app/src/main/res/layout/activity_device_alarm_info_line_chart.xml b/app/src/main/res/layout/activity_device_alarm_info_line_chart.xml index 16aee34..105ac6a 100644 --- a/app/src/main/res/layout/activity_device_alarm_info_line_chart.xml +++ b/app/src/main/res/layout/activity_device_alarm_info_line_chart.xml @@ -1,21 +1,204 @@ - + android:orientation="vertical" + tools:context=".ui.activity.DeviceAlarmInfoLineChartActivity"> + layout="@layout/toolbar_yx" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="400dp"/>