设备详情增加趋势图

master
wenfei 6 days ago
parent 9a44ca7219
commit ff42099330

@ -26,6 +26,7 @@ class DeviceAlarmInfoDetailActivity : BaseActivityOaToolbarViewBinding<ActivityD
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("deviceCode",GsonUtils.GsonString(deviceCode))
intent.putExtra("deviceName",GsonUtils.GsonString(deviceName))
intent.putExtra("title","图表-测振测温设备")
startActivity(intent)
}else{
showToast("设备编码不存在")

@ -121,7 +121,16 @@ public class DeviceAlarmInfoLineChartActivity extends BaseActivityOaToolbarViewB
// this.setStatusBar();
// binding.toolbarView.titleYx.setText("曲线图-测振测温设备");
// setBack();
initToolbar("图表-测振测温设备", "刷新", new View.OnClickListener() {
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();
}
String title=getIntent().getStringExtra("title");
initToolbar(title, "刷新", new View.OnClickListener() {
@Override
public void onClick(View v) {
if(deviceCode!=null){
@ -186,15 +195,6 @@ public class DeviceAlarmInfoLineChartActivity extends BaseActivityOaToolbarViewB
});
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

@ -119,7 +119,7 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
override fun onRestart() {
super.onRestart()
authenticationLoginDeviceAlarmInfoRsa()
authenticationLoginDeviceAlarmInfoRsaNoProgress()
}
private fun filterChange(){
@ -191,6 +191,33 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
}
}
private fun authenticationLoginDeviceAlarmInfoRsaNoProgress() {
try {
//AI三维登录接口
val userName = Contans.SP.DeviceAlermInfoAccount
val strPrivateEncode = RSAAndroid.encryptByPrivateKeyForSpiltStr(
Contans.SP.DeviceAlermInfoPwd,
RSAAndroid.privateRsaKeyLocal)
val strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(
Contans.SP.DeviceAlermInfoPwd,
RSAAndroid.publicRsaKeyLocal
)
AuthenticationLoginAIUtils.authenticationDeviceAlermInfoRsaNotShowProgress(
this, userName, strPublicDecode
) { _, token ->
if (token != null && token == "") {
showToast("设备状态智能监测及分析平台登录失败")
} else {
//登录成功
//获取区域
getDeviceAreaListNoProgress()
}
}
} catch (e: Exception) {
e.printStackTrace()
}
}
private fun getDeviceManagerListData() {
val request = NoHttp.createStringRequest(
@ -288,6 +315,103 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
})
}
private fun getDeviceManagerListDataNoProgress() {
val request = NoHttp.createStringRequest(
Contans.IP + Contans.DeviceManagerListUrl,
RequestMethod.GET
)
// if(binding.rb1.isChecked){
// request.add("online",true)
// }
// if(binding.rb2.isChecked){
// request.add("online",false)
// }
// val keyword = binding.etKey.text.toString().trim()
// if(!TextUtils.isEmpty(keyword)){
// request.add("keyword",keyword)
// }
NohttpUtils.getInstance().addNoProgress(this, 0, request, object : HttpListener<String?> {
override fun onSucceed(what: Int, response: Response<String?>?) {
val result = response?.get()
showLog("----------------")
showLog(result)
val bean = GsonUtils.GsonToBean(
result,
DeviceManagerListResultBean::class.java
)
showLog(GsonUtils.GsonString(bean))
if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null&& bean.data.size>0) {
deviceManagerList.clear()
deviceManagerListFilter.clear()
deviceManagerList.addAll(bean.data)
if(areaNodeList.size>0){
for (item in deviceManagerList) {
if(!TextUtils.isEmpty(item.areaId)){
for (itemAreaNode in areaNodeList) {
if(item.areaId==itemAreaNode.nodeKey){
item.areaFullName=itemAreaNode.areaFullName
item.areaFullPath=itemAreaNode.areaFullPath
}
}
}
showLog(GsonUtils.GsonString(item))
}
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<DeviceManagerListResultBean.DeviceManagerItem> = 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
}else{
deviceManagerList.clear()
deviceManagerListFilter.clear()
deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.VISIBLE
binding.lv.visibility=View.GONE
}
}
override fun onFailed(what: Int, response: Response<String?>?) {
}
})
}
private fun getDeviceAreaList() {
//DeviceOnlineStatusAreaBean
@ -337,4 +461,55 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
}
})
}
private fun getDeviceAreaListNoProgress() {
//DeviceOnlineStatusAreaBean
val request = NoHttp.createStringRequest(
Contans.IP + Contans.DeviceOnlineStatusAreaBeanUrl,
RequestMethod.GET
)
NohttpUtils.getInstance().addNoProgress(this, 0, request, object : HttpListener<String?> {
override fun onSucceed(what: Int, response: Response<String?>?) {
val result = response?.get()
showLog("----------------")
showLog(result)
val bean = GsonUtils.GsonToBean(
result,
DeviceOnlineStatusAreaBean::class.java
)
showLog(GsonUtils.GsonString(bean))
if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size>0) {
areaList.clear()
areaNodeList.clear()
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.cname)) {
itemNodeList.areaFullPath=itemArea.cname+"/"+itemNodeList.cname
itemNodeList.areaFullName=itemArea.cname+">"+itemNodeList.cname
areaNodeList.add(itemNodeList)
}
}
}
}
showLog(GsonUtils.GsonString(areaList))
SPUtils.put(context, Contans.DeviceOnlineStatusAreaBean,result)
//获取设备管理列表
getDeviceManagerListDataNoProgress()
}
}
override fun onFailed(what: Int, response: Response<String?>?) {
}
})
}
}

@ -3,6 +3,7 @@ package com.rehome.zhdcoa.ui.fragment;
import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
@ -22,7 +23,9 @@ 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.ui.activity.DeviceAlarmInfoLineChartActivity;
import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils;
import com.rehome.zhdcoa.utils.GsonUtils;
import com.rehome.zhdcoa.utils.HttpListener;
import com.rehome.zhdcoa.utils.NohttpUtils;
import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener;
@ -81,6 +84,29 @@ public class DeviceMonitoringDetailFragment extends BaseViewBindingFragment<Frag
binding.itemYAddSpeed.tvType.setText("Y轴加速度 (m/s²)");
binding.itemZAddSpeed.tvType.setText("Z轴加速度 (m/s²)");
binding.itemXWy.tvType.setText("X轴位移 (μm)");
binding.itemYWy.tvType.setText("Y轴位移 (μm)");
binding.itemZWy.tvType.setText("Z轴位移 (μm)");
binding.itemXPl.tvType.setText("X轴频率 (Hz)");
binding.itemYPl.tvType.setText("Y轴频率 (Hz)");
binding.itemZPl.tvType.setText("Z轴频率 (Hz)");
binding.itemXZlfl.tvType.setText("X轴直流分量");
binding.itemYZlfl.tvType.setText("Y轴直流分量");
binding.itemZZlfl.tvType.setText("Z轴直流分量");
binding.itemSpeed.tvCharView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, DeviceAlarmInfoLineChartActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("deviceCode", GsonUtils.GsonString(deviceCode));
intent.putExtra("deviceName",GsonUtils.GsonString(deviceName));
intent.putExtra("title","趋势图");
startActivity(intent);
}
});
}
@Override
@ -164,6 +190,17 @@ public class DeviceMonitoringDetailFragment extends BaseViewBindingFragment<Frag
binding.itemYAddSpeed.tvValue.setText(item.getyAcceleration().toString());
binding.itemZAddSpeed.tvValue.setText(item.getzAcceleration().toString());
binding.itemXWy.tvValue.setText(item.getxDisplacement().toString());
binding.itemYWy.tvValue.setText(item.getyDisplacement().toString());
binding.itemZWy.tvValue.setText(item.getzDisplacement().toString());
binding.itemXPl.tvValue.setText(String.valueOf(item.getxFrequency().intValue()));
binding.itemYPl.tvValue.setText(String.valueOf(item.getyFrequency().intValue()));
binding.itemZPl.tvValue.setText(String.valueOf(item.getzFrequency().intValue()));
binding.itemXZlfl.tvValue.setText(item.getxDcComponent().toString());
binding.itemYZlfl.tvValue.setText(item.getyDcComponent().toString());
binding.itemZZlfl.tvValue.setText(item.getzDcComponent().toString());
}else{
showLog("数据加载失败");

@ -429,6 +429,92 @@ public class AuthenticationLoginAIUtils {
});
}
public static void authenticationDeviceAlermInfoRsaNotShowProgress(Activity mActivity, String account, String password, OnAuthenticationLoginListener listener) {
Request<String> request = NoHttp.createStringRequest(Contans.IP + Contans.DeviceAlermInfoLoginRsaUrl, RequestMethod.POST);
Map<String, String> params = new HashMap<>();
params.put("username", account);
params.put("password", password);
String json = GsonUtils.GsonString(params);
//showLog(json,mActivity);
String jsonEncrypt = RSAUtils.encryptBASE64Str(json);
showLog(jsonEncrypt, mActivity);
request.setDefineRequestBodyForJson(jsonEncrypt);
if (Contans.IP.equals(Contans.IP_EXTRANET)) {
SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(mActivity);
if (socketFactory != null) {
request.setSSLSocketFactory(socketFactory);
request.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String s, SSLSession sslSession) {
return true;
}
});
}
}
NohttpUtils.getInstance().addNoProgress(mActivity, 0, request, new HttpListener<String>() {
@Override
public void onSucceed(int what, Response<String> response) {
showLog("----------------", mActivity);
String result = response.get();
showLog(result, mActivity);
if (!TextUtils.isEmpty(result)) {
String jsonDecode = RSAUtils.decryptBASE64StrClient(result);
if (TextUtils.isEmpty(jsonDecode)) {
//解密失败
showLog("APP解密失败", mActivity);
listener.onAuthenticationSuccess(false, "");
} else {
showLog(jsonDecode, mActivity);
UserAuthenticationAIBean bean = GsonToBean(jsonDecode, UserAuthenticationAIBean.class);
//DeviceAlarmLoginResultBean bean = GsonToBean(result, DeviceAlarmLoginResultBean.class);
if (bean != null) {
if (bean.isSuccess() && bean.getCode() == 20000) {//登录成功
listener.onAuthenticationSuccess(true, bean.getData().getToken());
} else {
if (bean.getFlag() == -1) {
if (bean.getMsg() != null && bean.getMsg().equals("用户未注销")) {
String token = (String) SPUtils.get(mActivity, Contans.AUTHENTICATIONLOGINTOKENAI, String.valueOf(""));
listener.onAuthenticationSuccess(true, token);
}
} else {
listener.onAuthenticationSuccess(false, "");
if (bean.getFlag() == -2) {
showLog("没有传参", mActivity);
}
if (bean.getFlag() == -3) {
showLog("服务器解密失败", mActivity);
}
if (bean.getFlag() == -4) {
showLog("Json 格式不正确", mActivity);
}
if (bean.getFlag() == -5) {
showLog("账号密码不能为空", mActivity);
}
if (bean.getFlag() == -6) {
showLog("账号或密码错误", mActivity);
}
}
}
}
}
}
}
@Override
public void onFailed(int what, Response<String> response) {
showLog("onFailed", mActivity);
listener.onAuthenticationSuccess(false, "");
}
});
}
public static void showLog(String logText, Context context) {
if (isApkInDebug(context)) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@ -6,6 +6,47 @@
android:background="#242e2f"
android:orientation="vertical"
tools:context=".ui.fragment.DeviceMonitoringDetailFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/item_sj"
layout="@layout/item_head_device_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginBottom="10dp" />
<include
android:id="@+id/item_qy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_sbmc"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_temperature"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp"
android:text="温度" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
@ -23,43 +64,6 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/item_sj"
layout="@layout/item_head_device_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginBottom="10dp" />
<include
android:id="@+id/item_qy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_sbmc"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_temperature"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp"
android:text="温度" />
<include
android:id="@+id/item_speed"
layout="@layout/item_device_detail_row_type"

@ -27,16 +27,33 @@
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textSize="14sp"
android:textColor="#999999"
android:text="速度数据" />
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginStart="10dp"
android:layout_gravity="center_vertical"
android:src="@drawable/icon_qzt"/>
<TextView
android:id="@+id/tv_char_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="start|center_vertical"
android:textSize="16sp"
android:layout_marginStart="1dp"
android:textColor="#409EFF"
android:text="趋势图" />
<TextView
android:id="@+id/tv_value"
@ -49,8 +66,8 @@
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
android:visibility="visible"
android:text="" />
<View

Loading…
Cancel
Save