diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cd07b48..80a4cab 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -460,6 +460,9 @@
+
diff --git a/app/src/main/java/com/rehome/zhdcoa/Contans.java b/app/src/main/java/com/rehome/zhdcoa/Contans.java
index 9d5e5f1..7456953 100644
--- a/app/src/main/java/com/rehome/zhdcoa/Contans.java
+++ b/app/src/main/java/com/rehome/zhdcoa/Contans.java
@@ -553,6 +553,8 @@ public class Contans {
public final static String DeviceOnlineStatusAreaBeanUrl = "dserver/map/area/list";
//设备管理
public final static String DeviceManagerListUrl = "dserver/device/list/vibration";
+ //设备详情
+ public final static String DeviceDetailDataUrl = "dserver/device/vibration/monitoring/list";
//人员组织结构模块 用户验证接口token
public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN";
diff --git a/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt b/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt
index d660602..83ad6c6 100644
--- a/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/adapter/DeviceManagerListAdapter.kt
@@ -51,41 +51,6 @@ class DeviceManagerListAdapter(
override fun handleData(position: Int, binding: AdapterDeviceManagerListBinding) {
val itemBean: DeviceManagerListResultBean.DeviceManagerItem = data[position]
if (!TextUtils.isEmpty(itemBean.fileName)) {
- //binding.ivDevicePhoto.setImageBitmap()
- // Glide.with(viewHolder.itemView.getContext())
-// .load(Uri.parse(mediaUrl))
-// .centerCrop()
-// .placeholder(R.color.app_color_f6)
-// .diskCacheStrategy(DiskCacheStrategy.ALL)
-// .into(viewHolder.mImg);
-
-// Glide.with(viewHolder.itemView.getContext())
-// .load(mediaUrl)
-// .dontAnimate()
-// .skipMemoryCache(true)
-// .diskCacheStrategy(DiskCacheStrategy.NONE)
-// .placeholder(R.drawable.head_photo)
-// .into(viewHolder.mImg);
-
-// showLog(mediaUrl);
-// Request request = NoHttp.createImageRequest(mediaUrl);
-
-// NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener() {
-//
-// @Override
-// public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) {
-//
-// Bitmap picFile = response.get();
-// showLog(String.valueOf(picFile==null));
-// viewHolder.mImg.setImageBitmap(picFile);
-// }
-//
-// @Override
-// public void onFailed(int what, com.yolanda.nohttp.rest.Response response) {
-// showLog("设备图片加载失败");
-// }
-// });
-
val mediaUrl = Contans.IP + Contans.getImgDeviceOnlineBaseUrl+itemBean.fileName
val request = NoHttp.createImageRequest(mediaUrl)
request.cacheMode = CacheMode.NONE_CACHE_REQUEST_NETWORK
@@ -134,36 +99,6 @@ class DeviceManagerListAdapter(
binding.ivDevicePhoto.setImageDrawable(drawable)
}
-// if (!TextUtils.isEmpty(itemBean.position)) {
-// val deviceOnlineStatusAreaBeanStr: String? =
-// SPUtils.get(context, Contans.DeviceOnlineStatusAreaBean, "") as String?
-// if (deviceOnlineStatusAreaBeanStr != null) {
-// val bean = GsonUtils.GsonToBean(
-// deviceOnlineStatusAreaBeanStr,
-// DeviceOnlineStatusAreaBean::class.java
-// )
-// if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size > 0) {
-// val areaList: MutableList =
-// mutableListOf()//在线设备区域列表
-// areaList.addAll(bean.data)
-// //更新区域
-// for (itemArea in areaList) {
-// if (itemArea.nodeList != null && itemArea.nodeList.size > 0) {
-// for (itemNodeList in itemArea.nodeList) {
-// if (!TextUtils.isEmpty(itemNodeList.nodeKey)) {
-// if (itemNodeList.nodeKey == itemBean.position) {
-// if (!TextUtils.isEmpty(itemNodeList.cname)) {
-// itemBean.nodeListCname = itemNodeList.cname
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-
binding.tvMc.text = itemBean.name
if(!TextUtils.isEmpty(itemBean.areaFullName)){
binding.tvArea.text = itemBean.areaFullName
diff --git a/app/src/main/java/com/rehome/zhdcoa/bean/DeviceDetailListResultBean.java b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceDetailListResultBean.java
new file mode 100644
index 0000000..2eabe99
--- /dev/null
+++ b/app/src/main/java/com/rehome/zhdcoa/bean/DeviceDetailListResultBean.java
@@ -0,0 +1,222 @@
+package com.rehome.zhdcoa.bean;
+
+import java.util.List;
+
+public class DeviceDetailListResultBean extends DeviceAlarmBaseBean {
+ private List data;
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ /**
+ * {
+ * "deviceTime": "2026-03-03 15:37:36",
+ * "temperature": 41.3536,
+ * "xDisplacement": 18.3865,
+ * "yDisplacement": 17.2165,
+ * "zDisplacement": 7.43098,
+ * "xSpeed": 1.08465,
+ * "ySpeed": 0.943979,
+ * "zSpeed": 0.689721,
+ * "xAcceleration": 0.999873,
+ * "yAcceleration": 0.913917,
+ * "zAcceleration": 1.03879,
+ * "xDcComponent": -2.87,
+ * "yDcComponent": -2.57828,
+ * "zDcComponent": -9.43139,
+ * "xFrequency": 159.0,
+ * "yFrequency": 592.0,
+ * "zFrequency": 1186.0,
+ * "xFreq": 0.169286,
+ * "yFreq": 0.197543,
+ * "zFreq": 0.217712
+ * }
+ */
+ public static class DeviceDetailItem {
+ private String deviceTime;//设备时间
+ private Double temperature;//温度
+ private Double xDisplacement;//x轴位移
+ private Double yDisplacement;//y轴位移
+ private Double zDisplacement;//z轴位移
+ private Double xSpeed;//x轴速度
+ private Double ySpeed;//y轴速度
+ private Double zSpeed;//z轴速度
+ private Double xAcceleration;//X轴加速度
+ private Double yAcceleration;//y轴加速度
+ private Double zAcceleration;//z轴加速度
+ private Double xDcComponent;//X轴直流分量
+ private Double yDcComponent;//y轴直流分量
+ private Double zDcComponent;//z轴直流分量
+ private Double xFrequency;//X轴频率
+ private Double yFrequency;//y轴频率
+ private Double zFrequency;//z轴频率
+ private Double xFreq;// x FREQ对应幅值
+ private Double yFreq;// y FREQ对应幅值
+ private Double zFreq;// z FREQ对应幅值
+
+ public String getDeviceTime() {
+ return deviceTime;
+ }
+
+ public void setDeviceTime(String deviceTime) {
+ this.deviceTime = deviceTime;
+ }
+
+ public Double getTemperature() {
+ return temperature;
+ }
+
+ public void setTemperature(Double temperature) {
+ this.temperature = temperature;
+ }
+
+ public Double getxDisplacement() {
+ return xDisplacement;
+ }
+
+ public void setxDisplacement(Double xDisplacement) {
+ this.xDisplacement = xDisplacement;
+ }
+
+ public Double getyDisplacement() {
+ return yDisplacement;
+ }
+
+ public void setyDisplacement(Double yDisplacement) {
+ this.yDisplacement = yDisplacement;
+ }
+
+ public Double getzDisplacement() {
+ return zDisplacement;
+ }
+
+ public void setzDisplacement(Double zDisplacement) {
+ this.zDisplacement = zDisplacement;
+ }
+
+ public Double getxSpeed() {
+ return xSpeed;
+ }
+
+ public void setxSpeed(Double xSpeed) {
+ this.xSpeed = xSpeed;
+ }
+
+ public Double getySpeed() {
+ return ySpeed;
+ }
+
+ public void setySpeed(Double ySpeed) {
+ this.ySpeed = ySpeed;
+ }
+
+ public Double getzSpeed() {
+ return zSpeed;
+ }
+
+ public void setzSpeed(Double zSpeed) {
+ this.zSpeed = zSpeed;
+ }
+
+ public Double getxAcceleration() {
+ return xAcceleration;
+ }
+
+ public void setxAcceleration(Double xAcceleration) {
+ this.xAcceleration = xAcceleration;
+ }
+
+ public Double getyAcceleration() {
+ return yAcceleration;
+ }
+
+ public void setyAcceleration(Double yAcceleration) {
+ this.yAcceleration = yAcceleration;
+ }
+
+ public Double getzAcceleration() {
+ return zAcceleration;
+ }
+
+ public void setzAcceleration(Double zAcceleration) {
+ this.zAcceleration = zAcceleration;
+ }
+
+ public Double getxDcComponent() {
+ return xDcComponent;
+ }
+
+ public void setxDcComponent(Double xDcComponent) {
+ this.xDcComponent = xDcComponent;
+ }
+
+ public Double getyDcComponent() {
+ return yDcComponent;
+ }
+
+ public void setyDcComponent(Double yDcComponent) {
+ this.yDcComponent = yDcComponent;
+ }
+
+ public Double getzDcComponent() {
+ return zDcComponent;
+ }
+
+ public void setzDcComponent(Double zDcComponent) {
+ this.zDcComponent = zDcComponent;
+ }
+
+ public Double getxFrequency() {
+ return xFrequency;
+ }
+
+ public void setxFrequency(Double xFrequency) {
+ this.xFrequency = xFrequency;
+ }
+
+ public Double getyFrequency() {
+ return yFrequency;
+ }
+
+ public void setyFrequency(Double yFrequency) {
+ this.yFrequency = yFrequency;
+ }
+
+ public Double getzFrequency() {
+ return zFrequency;
+ }
+
+ public void setzFrequency(Double zFrequency) {
+ this.zFrequency = zFrequency;
+ }
+
+ public Double getxFreq() {
+ return xFreq;
+ }
+
+ public void setxFreq(Double xFreq) {
+ this.xFreq = xFreq;
+ }
+
+ public Double getyFreq() {
+ return yFreq;
+ }
+
+ public void setyFreq(Double yFreq) {
+ this.yFreq = yFreq;
+ }
+
+ public Double getzFreq() {
+ return zFreq;
+ }
+
+ public void setzFreq(Double zFreq) {
+ this.zFreq = zFreq;
+ }
+ }
+}
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt
index 9ba2390..704219b 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceManagerListActivity.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.text.TextUtils
import android.view.View
import android.widget.ArrayAdapter
+import android.widget.RadioGroup
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
@@ -29,6 +30,7 @@ import com.rehome.zhdcoa.utils.RSAAndroid
import com.rehome.zhdcoa.utils.SPUtils
import com.rehome.zhdcoa.weiget.LoadListView
import com.rehome.zhdcoa.weiget.OAToolbar
+import com.xuexiang.xui.widget.button.SmoothCheckBox.OnCheckedChangeListener
import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response
@@ -37,6 +39,7 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding("VIBRATION", "OIL", "FUEL", "THERMAL_IMAGER", "VIBRATION_ZB")
//options:[{ value:'online',label:'在线”}{value:'offline',label:'离线”}1,
private var deviceManagerList: MutableList = mutableListOf()//设备管理列表
+ private var deviceManagerListFilter: MutableList = mutableListOf()//设备管理列表
private var areaList: MutableList = mutableListOf()//在线设备区域列表
private var areaNodeList: MutableList = mutableListOf()//在线设备区域列表
@@ -46,8 +49,6 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding0){
+ filterChange()
+ }else{
+ authenticationLoginDeviceAlarmInfoRsa()
+ }
}
binding.lv.emptyView = binding.tvNodata
@@ -70,17 +74,29 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding0){
+ deviceManagerListFilter.clear()
+ if(binding.rb1.isChecked){
+ for (item in deviceManagerList) {
+ if(item.online){
+ deviceManagerListFilter.add(item)
+ }
+ }
+ }
+ if(binding.rb2.isChecked){
+ for (item in deviceManagerList) {
+ if(!item.online){
+ deviceManagerListFilter.add(item)
+ }
+ }
+ }
+ if(!TextUtils.isEmpty(binding.etKey.text.toString().trim())){
+ if(deviceManagerListFilter.size>0){
+ val deviceManagerListFilterKeyFilter: MutableList = mutableListOf()
+ for (item in deviceManagerListFilter) {
+ if(!TextUtils.isEmpty(item.name)&&item.name.contains(binding.etKey.text.toString().trim())){
+ deviceManagerListFilterKeyFilter.add(item)
+ }
+ }
+ deviceManagerListFilter.clear()
+ deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
+ }
+ }
+ showLog("deviceManagerListFilter size:"+deviceManagerListFilter.size.toString())
+ showLog("deviceManagerList size:"+deviceManagerList.size.toString())
+ deviceManagerListAdapter.notifyDataSetChanged()
+ binding.tvNodata.visibility = View.GONE
+ binding.lv.visibility=View.VISIBLE
+ }else{
+ deviceManagerListFilter.clear()
+ deviceManagerListAdapter.notifyDataSetChanged()
+ binding.tvNodata.visibility = View.VISIBLE
+ binding.lv.visibility=View.GONE
+ }
+ }
+
private fun authenticationLoginDeviceAlarmInfoRsa() {
try {
//AI三维登录接口
@@ -158,6 +226,7 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding0) {
deviceManagerList.clear()
+ deviceManagerListFilter.clear()
deviceManagerList.addAll(bean.data)
if(areaNodeList.size>0){
@@ -172,15 +241,41 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding0){
+ val deviceManagerListFilterKeyFilter: MutableList = mutableListOf()
+ for (item in deviceManagerListFilter) {
+ if(!TextUtils.isEmpty(item.name)&&item.name.contains(binding.etKey.text.toString().trim())){
+ deviceManagerListFilterKeyFilter.add(item)
+ }
+ }
+ deviceManagerListFilter.clear()
+ deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
+ }
+ }
}
deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.GONE
binding.lv.visibility=View.VISIBLE
- pageNo++
}else{
deviceManagerList.clear()
+ deviceManagerListFilter.clear()
deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.VISIBLE
binding.lv.visibility=View.GONE
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceMonitoringDetailActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceMonitoringDetailActivity.kt
new file mode 100644
index 0000000..b6157e6
--- /dev/null
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceMonitoringDetailActivity.kt
@@ -0,0 +1,56 @@
+package com.rehome.zhdcoa.ui.activity
+
+import androidx.fragment.app.Fragment
+import com.rehome.zhdcoa.adapter.FragmentAdapter
+import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
+import com.rehome.zhdcoa.databinding.ActivityDeviceMonitoringDetailBinding
+import com.rehome.zhdcoa.ui.fragment.DeviceMonitoringDetailFragment
+import com.rehome.zhdcoa.ui.fragment.DeviceMonitoringStatisticsFragment
+
+/**
+ * Create By HuangWenFei
+ * 创建日期:2026-02-28 15:20
+ * 描述:设备详情
+ */
+class DeviceMonitoringDetailActivity : BaseActivityOaToolbarViewBinding() {
+
+ private val fragments: MutableList = mutableListOf()
+ private var page = 0
+ private lateinit var deviceCode:String
+ private lateinit var deviceName:String
+ private lateinit var areaFullName:String
+
+ override fun getViewBinding() = ActivityDeviceMonitoringDetailBinding.inflate(layoutInflater)
+
+ override fun getToolbar() = binding.toolbarView.toolbar
+
+ override fun initView() {
+ initToolbar("设备详情", "",{
+
+ })
+ deviceCode = intent.getStringExtra("deviceId").toString()
+ deviceName = intent.getStringExtra("deviceName").toString()
+ areaFullName = intent.getStringExtra("areaFullName").toString()
+ }
+
+ override fun initData() {
+ initViewPager()
+ }
+
+ private fun initViewPager() {
+ val titles: MutableList = ArrayList()
+ titles.add("设备详情")
+ titles.add("设备统计")
+ for (i in titles.indices) {
+ binding.tabs.addTab(binding.tabs.newTab().setText(titles[i]))
+ }
+ fragments.add(DeviceMonitoringDetailFragment(deviceCode,deviceName,areaFullName))
+ fragments.add(DeviceMonitoringStatisticsFragment())
+ val mFragmentAdapter = FragmentAdapter(
+ supportFragmentManager, fragments, titles
+ )
+ binding.viewpager.adapter = mFragmentAdapter
+ binding.tabs.setupWithViewPager(binding.viewpager)
+ binding.viewpager.currentItem = page
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOnlinePhotoManageActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOnlinePhotoManageActivity.java
index 0765ac9..07e8a0e 100644
--- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOnlinePhotoManageActivity.java
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceOnlinePhotoManageActivity.java
@@ -544,6 +544,7 @@ public class DeviceOnlinePhotoManageActivity extends BaseActivity {
@SuppressLint("NotifyDataSetChanged")
@Override
public void confirm(String notice) {
+ ll_recycle.setVisibility(View.VISIBLE);
authenticationLoginDeviceAlarmInfoRsa();
}
});
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringDetailFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringDetailFragment.java
new file mode 100644
index 0000000..19d166f
--- /dev/null
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringDetailFragment.java
@@ -0,0 +1,179 @@
+package com.rehome.zhdcoa.ui.fragment;
+
+import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean;
+
+import android.annotation.SuppressLint;
+import android.graphics.Color;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.rehome.zhdcoa.Contans;
+import com.rehome.zhdcoa.R;
+import com.rehome.zhdcoa.base.BaseViewBindingFragment;
+import com.rehome.zhdcoa.bean.DeviceDetailListResultBean;
+import com.rehome.zhdcoa.bean.DeviceOnlineStatusBean;
+import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringDetailBinding;
+import com.rehome.zhdcoa.databinding.FragmentTrainBinding;
+import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils;
+import com.rehome.zhdcoa.utils.HttpListener;
+import com.rehome.zhdcoa.utils.NohttpUtils;
+import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener;
+import com.rehome.zhdcoa.utils.RSAAndroid;
+import com.yolanda.nohttp.NoHttp;
+import com.yolanda.nohttp.RequestMethod;
+import com.yolanda.nohttp.rest.Request;
+
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * 设备详情
+ */
+public class DeviceMonitoringDetailFragment extends BaseViewBindingFragment {
+ private String deviceCode;
+ private String deviceName;
+ private String areaFullName;
+ 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 detailList=new ArrayList<>();
+
+ public DeviceMonitoringDetailFragment(String deviceCode,String deviceName,String areaFullName){
+ this.deviceCode=deviceCode;
+ this.deviceName=deviceName;
+ this.areaFullName=areaFullName;
+ }
+
+ @Override
+ protected FragmentDeviceMonitoringDetailBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
+ return FragmentDeviceMonitoringDetailBinding.inflate(inflater);
+ }
+
+ @Override
+ protected void initView() {
+// binding.itemSj.tvBjz.setText();
+ binding.itemQy.tvType.setText("区域");
+ binding.itemQy.tvValue.setText(areaFullName);
+ binding.itemQy.tvValue.setTextSize(14);
+ binding.itemQy.tvValue.setTextColor(Color.WHITE);
+ binding.itemSbmc.tvType.setText("设备名称");
+ binding.itemSbmc.tvValue.setText(deviceName);
+ binding.itemSbmc.tvValue.setTextSize(14);
+ binding.itemSbmc.tvValue.setTextColor(Color.WHITE);
+
+ binding.itemXSpeed.tvType.setText("X轴速度 (mm/s)");
+ binding.itemYSpeed.tvType.setText("Y轴速度 (mm/s)");
+ binding.itemZSpeed.tvType.setText("Z轴速度 (mm/s)");
+
+ binding.itemXAddSpeed.tvType.setText("X轴加速度 (m/s²)");
+ binding.itemYAddSpeed.tvType.setText("Y轴加速度 (m/s²)");
+ binding.itemZAddSpeed.tvType.setText("Z轴加速度 (m/s²)");
+
+ }
+
+ @Override
+ protected void initData() {
+ //设备详情
+ //http://10.19.0.17:1700/dserver/device/vibration/monitoring/list?deviceCode=002c0077&startTime=2026-03-01+11:16:00&endTime=2026-03-02+23:59:59&v=1772421370491
+ //设备统计-设备运行率
+ //http://10.19.0.17:1700/dserver/device/operationRate/002c0077
+ authenticationLoginDeviceAlarmInfoRsa();
+ }
+
+ private void authenticationLoginDeviceAlarmInfoRsa() {
+ try {
+ //AI三维登录接口
+ String userName = Contans.SP.DeviceAlermInfoAccount;
+ String strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(
+ Contans.SP.DeviceAlermInfoPwd,
+ RSAAndroid.publicRsaKeyLocal
+ );
+ AuthenticationLoginAIUtils.authenticationDeviceAlermInfoRsaShowProgress(requireActivity(),userName,strPublicDecode,new OnAuthenticationLoginListener(){
+ @Override
+ public void onAuthenticationSuccess(boolean result, String token) {
+ if(token!=null&&token.isEmpty()){
+ //登录失败
+ showToast("设备状态智能监测及分析平台登录失败");
+ }else{
+ //登录成功
+ //获取设备详情数据
+ getDeviceDetailData();
+ }
+ }
+ });
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void getDeviceDetailData() {
+
+ //静态方法getInstance()使用默认时区和语言环境获得一个日历。
+ Calendar calendarNow = Calendar.getInstance();
+ //add()增加日期,以天为单位(Calendar封装了很多静态的操作时间的单位)
+ //增加10天,负数则为减少天数
+ calendarNow.add(Calendar.DATE, -1);
+ //输出增加10天后的时间;
+ String startTime = sdf.format(calendarNow.getTime());
+ showLog("startTime: "+startTime);
+ Calendar calendarEnd = Calendar.getInstance();
+ String endTime = sdfDay.format(calendarEnd.getTime())+" 23:59:59";
+ showLog("endTime: "+endTime);
+
+ String url = Contans.IP + Contans.DeviceDetailDataUrl;
+ Request request = NoHttp.createStringRequest(url, RequestMethod.GET);
+ request.add("deviceCode",deviceCode);
+ request.add("startTime",startTime);
+ request.add("endTime",endTime);
+
+ NohttpUtils.getInstance().add(requireActivity(),0, request, new HttpListener() {
+
+ @SuppressLint({"SetTextI18n", "DefaultLocale"})
+ @Override
+ public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) {
+ String result = response.get();
+ showLog(result);
+
+ DeviceDetailListResultBean bean = GsonToBean(result, DeviceDetailListResultBean.class);
+ if(bean!=null && bean.getCode()==20000 && bean.isSuccess() && bean.getData()!=null&& !bean.getData().isEmpty()){
+ detailList.clear();
+ detailList.addAll(bean.getData());
+ DeviceDetailListResultBean.DeviceDetailItem item = detailList.get(0);
+ if(!TextUtils.isEmpty(item.getDeviceTime())){
+ binding.itemSj.tvDeviceSj.setText(item.getDeviceTime());
+ }
+ binding.itemTemperature.tvValue.setText(item.getTemperature().toString());
+
+ binding.itemXSpeed.tvValue.setText(item.getxSpeed().toString());
+ binding.itemYSpeed.tvValue.setText(item.getySpeed().toString());
+ binding.itemZSpeed.tvValue.setText(item.getzSpeed().toString());
+
+ binding.itemXAddSpeed.tvValue.setText(item.getxAcceleration().toString());
+ binding.itemYAddSpeed.tvValue.setText(item.getyAcceleration().toString());
+ binding.itemZAddSpeed.tvValue.setText(item.getzAcceleration().toString());
+
+
+ }else{
+ showLog("数据加载失败");
+ }
+ }
+
+ @Override
+ public void onFailed(int what, com.yolanda.nohttp.rest.Response response) {
+
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringStatisticsFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringStatisticsFragment.java
new file mode 100644
index 0000000..85e2738
--- /dev/null
+++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringStatisticsFragment.java
@@ -0,0 +1,38 @@
+package com.rehome.zhdcoa.ui.fragment;
+
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.rehome.zhdcoa.R;
+import com.rehome.zhdcoa.base.BaseViewBindingFragment;
+import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringDetailBinding;
+import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringStatisticsBinding;
+
+/**
+ * 设备统计
+ */
+public class DeviceMonitoringStatisticsFragment extends BaseViewBindingFragment {
+
+
+ @Override
+ protected FragmentDeviceMonitoringStatisticsBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
+ return FragmentDeviceMonitoringStatisticsBinding.inflate(inflater);
+ }
+
+ @Override
+ protected void initView() {
+
+ }
+
+ @Override
+ protected void initData() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_tab.xml b/app/src/main/res/drawable/bg_tab.xml
index a1aee49..dfa0f9b 100755
--- a/app/src/main/res/drawable/bg_tab.xml
+++ b/app/src/main/res/drawable/bg_tab.xml
@@ -4,20 +4,20 @@
-
-
+
+ android:color="#0099ff"/>
-
-
+
+ android:color="#0099ff"/>
diff --git a/app/src/main/res/layout/activity_device_alarm_info_detail.xml b/app/src/main/res/layout/activity_device_alarm_info_detail.xml
index a14a61d..5fc5575 100644
--- a/app/src/main/res/layout/activity_device_alarm_info_detail.xml
+++ b/app/src/main/res/layout/activity_device_alarm_info_detail.xml
@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:background="#000000"
+ android:background="#242e2f"
tools:context=".ui.activity.DeviceAlarmInfoDetailActivity">
-
-
-
-
-
-
+ android:gravity="center_vertical|end"
+ android:layout_weight="2" >
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_device_monitoring_detail.xml b/app/src/main/res/layout/fragment_device_monitoring_detail.xml
new file mode 100644
index 0000000..f09a900
--- /dev/null
+++ b/app/src/main/res/layout/fragment_device_monitoring_detail.xml
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_device_monitoring_statistics.xml b/app/src/main/res/layout/fragment_device_monitoring_statistics.xml
new file mode 100644
index 0000000..f9a85eb
--- /dev/null
+++ b/app/src/main/res/layout/fragment_device_monitoring_statistics.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_device_detail_row.xml b/app/src/main/res/layout/item_device_detail_row.xml
new file mode 100644
index 0000000..720ad65
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_device_detail_row_type.xml b/app/src/main/res/layout/item_device_detail_row_type.xml
new file mode 100644
index 0000000..c86335d
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row_type.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_device_detail_row_type_add_speed.xml b/app/src/main/res/layout/item_device_detail_row_type_add_speed.xml
new file mode 100644
index 0000000..acf9fda
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row_type_add_speed.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_device_detail_row_type_pl.xml b/app/src/main/res/layout/item_device_detail_row_type_pl.xml
new file mode 100644
index 0000000..4a71b40
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row_type_pl.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_device_detail_row_type_wy.xml b/app/src/main/res/layout/item_device_detail_row_type_wy.xml
new file mode 100644
index 0000000..5ab3328
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row_type_wy.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_device_detail_row_type_zlfl.xml b/app/src/main/res/layout/item_device_detail_row_type_zlfl.xml
new file mode 100644
index 0000000..f0b5d95
--- /dev/null
+++ b/app/src/main/res/layout/item_device_detail_row_type_zlfl.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_head_device_detail.xml b/app/src/main/res/layout/item_head_device_detail.xml
new file mode 100644
index 0000000..9d28889
--- /dev/null
+++ b/app/src/main/res/layout/item_head_device_detail.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 68985ae..b2cfa79 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -100,6 +100,8 @@
- #FFDD00
- #FF0000
+
+ Hello blank fragment