From 9a44ca7219090bb0418659f6997794b93845e118 Mon Sep 17 00:00:00 2001 From: wenfei Date: Tue, 3 Mar 2026 17:34:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=AF=A6=E6=83=85=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 + .../main/java/com/rehome/zhdcoa/Contans.java | 2 + .../adapter/DeviceManagerListAdapter.kt | 65 ----- .../bean/DeviceDetailListResultBean.java | 222 ++++++++++++++++ .../ui/activity/DeviceManagerListActivity.kt | 113 +++++++- .../DeviceMonitoringDetailActivity.kt | 56 ++++ .../DeviceOnlinePhotoManageActivity.java | 1 + .../DeviceMonitoringDetailFragment.java | 179 +++++++++++++ .../DeviceMonitoringStatisticsFragment.java | 38 +++ app/src/main/res/drawable/bg_tab.xml | 8 +- .../activity_device_alarm_info_detail.xml | 2 +- .../layout/activity_device_manager_list.xml | 30 +-- .../activity_device_monitoring_detail.xml | 35 +++ .../fragment_device_monitoring_detail.xml | 245 ++++++++++++++++++ .../fragment_device_monitoring_statistics.xml | 53 ++++ .../res/layout/item_device_detail_row.xml | 71 +++++ .../layout/item_device_detail_row_type.xml | 70 +++++ .../item_device_detail_row_type_add_speed.xml | 70 +++++ .../layout/item_device_detail_row_type_pl.xml | 70 +++++ .../layout/item_device_detail_row_type_wy.xml | 70 +++++ .../item_device_detail_row_type_zlfl.xml | 70 +++++ .../res/layout/item_head_device_detail.xml | 69 +++++ app/src/main/res/values/strings.xml | 2 + 23 files changed, 1446 insertions(+), 98 deletions(-) create mode 100644 app/src/main/java/com/rehome/zhdcoa/bean/DeviceDetailListResultBean.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/activity/DeviceMonitoringDetailActivity.kt create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringDetailFragment.java create mode 100644 app/src/main/java/com/rehome/zhdcoa/ui/fragment/DeviceMonitoringStatisticsFragment.java create mode 100644 app/src/main/res/layout/activity_device_monitoring_detail.xml create mode 100644 app/src/main/res/layout/fragment_device_monitoring_detail.xml create mode 100644 app/src/main/res/layout/fragment_device_monitoring_statistics.xml create mode 100644 app/src/main/res/layout/item_device_detail_row.xml create mode 100644 app/src/main/res/layout/item_device_detail_row_type.xml create mode 100644 app/src/main/res/layout/item_device_detail_row_type_add_speed.xml create mode 100644 app/src/main/res/layout/item_device_detail_row_type_pl.xml create mode 100644 app/src/main/res/layout/item_device_detail_row_type_wy.xml create mode 100644 app/src/main/res/layout/item_device_detail_row_type_zlfl.xml create mode 100644 app/src/main/res/layout/item_head_device_detail.xml 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"> - - - - -