app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -75,9 +75,7 @@ } private List<DeviceBean> mListDevice = new ArrayList<>(); public void clearDeviceList() { @@ -1393,6 +1391,7 @@ gatewayBean.setSystemStatusDesc(cloudInverterDeviceBean.getSystemStatusDesc());//设备状态 gatewayBean.setHwVersion(cloudInverterDeviceBean.getHwVersion());//软件版本号 gatewayBean.setCategorySecondName(cloudInverterDeviceBean.getCategorySecondName());//设备类型(产品二级分类名称 gatewayBean.setGateway_type(cloudInverterDeviceBean.getDeviceType());//设备类型(INV:逆变器;BMS:BMS控制盒;BATTERY:电池单元) gatewayBean.setAddresses(cloudInverterDeviceBean.getAddresses());//子网号/设备号,逆变器地址 gatewayBean.setPowerPvNow(cloudInverterDeviceBean.getPowerPvNow());//发电功率 gatewayBean.setTotalElectricityPvToday(cloudInverterDeviceBean.getTotalElectricityPvToday());//今日发电量 app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -145,7 +145,7 @@ * 设备在线 但是当前处于故障 状态:故障 * 设备在线(有上报过数据,没有故障) 状态:在线 * 设备离线 状态:离线 * @param state_value 电站状态(1:正常(运行),2:离线,3:连接中,4:故障) * @param state_value 电站状态(1:正常(运行),2:离线,3:连接中,4:故障,5:离线有故障) */ private void setTextViewStyle(TextView textView, int state_value) { String text = mContext.getString(R.string.my_power_station_operation); @@ -170,6 +170,12 @@ text = mContext.getString(R.string.my_power_station_malfunction); drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343); } //5:离线有故障Offline_fault break; case 5: { text = mContext.getString(R.string.Offline_fault); drawable = AppCompatResources.getDrawable(mContext, R.drawable.state_e34343); } break; } textView.setText(text); app/src/main/java/com/hdl/photovoltaic/ui/bean/CloudInverterDeviceBean.java
@@ -38,6 +38,7 @@ private String hwVersion;//软件版本号 private String categorySecondName;//设备类型(产品二级分类名称) private String deviceType;//(设备类型INV : 逆变器,BMS : BMS控制盒,BATTERY : 电池单元) public String getSystemStatusDesc() { return systemStatusDesc == null ? "" : systemStatusDesc; @@ -193,5 +194,11 @@ this.online = online; } public String getDeviceType() { return deviceType == null ? "" : deviceType; } public void setDeviceType(String deviceType) { this.deviceType = deviceType; } } app/src/main/java/com/hdl/photovoltaic/ui/bean/DeviceBean.java
@@ -11,7 +11,6 @@ private String homeId; private String homeName; private String deviceType;//设备类型(INV逆变器,BMS控制盒,BATTERY电池单元) private String outputActivePower;//逆变器输出有功功率 private String address;//详细地址 private HouseInfoBean.Location location;//电站地址 @@ -56,13 +55,6 @@ this.location = location; } public String getDeviceType() { return TextUtils.isEmpty(deviceType) ? "" : deviceType; } public void setDeviceType(String deviceType) { this.deviceType = deviceType; } /** * 拼住宅地址 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -12,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.gson.Gson; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseFragment; @@ -219,15 +220,8 @@ mMessageAdapter.setOnclickListener(new MessageAdapter.OnClickListener() { @Override public void onClick(int position, MessageBean messageBean) { String messageStateType; if (isAlarmDeviceClick) { messageStateType = MessageStateType.untreated; } else { messageStateType = MessageStateType.processed; } Intent intent = new Intent(); intent.putExtra("msgId", messageBean.getMsgId().toString()); intent.putExtra("messageStateType", messageStateType); intent.putExtra("messageBean",new Gson().toJson(messageBean)); intent.setClass(_mActivity, MessageInfoActivity.class); startActivity(intent); } app/src/main/java/com/hdl/photovoltaic/ui/message/MessageInfoActivity.java
@@ -4,9 +4,11 @@ import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.TextView; import androidx.appcompat.content.res.AppCompatResources; import com.google.gson.Gson; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; import com.hdl.photovoltaic.base.CustomBaseActivity; @@ -16,6 +18,7 @@ import com.hdl.photovoltaic.enums.MessageAlarmStateType; import com.hdl.photovoltaic.enums.MessageStateType; import com.hdl.photovoltaic.listener.CloudCallBeak; import com.hdl.photovoltaic.other.HdlCommonLogic; import com.hdl.photovoltaic.other.HdlMessageLogic; import com.hdl.photovoltaic.other.HdlThreadLogic; import com.hdl.photovoltaic.ui.bean.MessageBean; @@ -33,8 +36,6 @@ private MessageBean mMessageBean; private String mMsgId; private String mMessageStateType; @Override public Object getContentView() { @@ -47,8 +48,11 @@ setNotificationBarBackgroundColor(CustomColor.white); setStatusBarTextColor(); try { mMsgId = getIntent().getStringExtra("msgId"); mMessageStateType = getIntent().getStringExtra("messageStateType"); String json = getIntent().getStringExtra("messageBean"); mMessageBean = new Gson().fromJson(json, MessageBean.class); if (mMessageBean == null) { mMessageBean = new MessageBean(); } } catch (Exception ignored) { } @@ -63,7 +67,7 @@ private void readData() { // showLoading(); HdlMessageLogic.getInstance().getMessageInfo(mMsgId, new CloudCallBeak<MessageBean>() { HdlMessageLogic.getInstance().getMessageInfo(mMessageBean.getMsgId().toString(), new CloudCallBeak<MessageBean>() { @Override public void onSuccess(MessageBean msg) { HdlThreadLogic.runMainThread(new Runnable() { @@ -82,21 +86,7 @@ viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); String type = "";//FAULT:故障,WARN:告警,EVENT:事件 Drawable drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { type = _mActivity.getString(R.string.my_power_station_malfunction); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_e34343); } else if (mMessageBean.getType().equals(MessageAlarmStateType.warn)) { type = _mActivity.getString(R.string.message_alarm); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) { type = _mActivity.getString(R.string.loading_title_tip); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.state_b9b9b9); } viewBinding.messageInfoAlarmStateTv.setText(type); viewBinding.messageInfoAlarmStateTv.setBackground(drawable); stateStyle(viewBinding.messageInfoAlarmStateTv); if (mMessageBean.getStatus().equals(MessageStateType.processed)) { //已经解决掉的隐藏 @@ -126,14 +116,11 @@ } //未处理 if (mMessageBean.getStatus().equals(MessageStateType.untreated)) { //改变缓存状态 if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated); BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setTopic(ConstantManage.message_function_push_post); baseEventBus.setType(MessageStateType.untreated); EventBus.getDefault().post(baseEventBus); //通知未处理要更新数据 HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); } else { //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表 HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); @@ -157,10 +144,8 @@ //改变缓存状态 if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.untreated); BaseEventBus baseEventBus = new BaseEventBus(); baseEventBus.setTopic(ConstantManage.message_function_push_post); baseEventBus.setType(MessageStateType.untreated); EventBus.getDefault().post(baseEventBus); //通知未处理要更新数据 HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); } else { //除“故障”外,其他等级信息“已读”后,自动移出“发生中”列表并加入“历史记录”列表 HdlMessageLogic.getInstance().setMessageState(mMessageBean.getMsgId(), true, MessageStateType.processed); @@ -175,7 +160,7 @@ viewBinding.messageInfoSolveTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HdlMessageLogic.getInstance().getMessageMessageSolve(mMsgId, new CloudCallBeak<Boolean>() { HdlMessageLogic.getInstance().getMessageMessageSolve(mMessageBean.getMsgId().toString(), new CloudCallBeak<Boolean>() { @Override public void onSuccess(Boolean obj) { if (mMessageBean == null) { @@ -206,15 +191,9 @@ */ private void sendEventBus() { //通知已处理要更新数据 BaseEventBus processedBus = new BaseEventBus(); processedBus.setTopic(ConstantManage.message_function_push_post); processedBus.setType(MessageStateType.processed); EventBus.getDefault().post(processedBus); HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.processed); //通知未处理要更新数据 BaseEventBus untreatedBus = new BaseEventBus(); untreatedBus.setTopic(ConstantManage.message_function_push_post); untreatedBus.setType(MessageStateType.untreated); EventBus.getDefault().post(untreatedBus); HdlCommonLogic.getInstance().postEventBus(ConstantManage.message_function_push_post, MessageStateType.untreated); } @@ -237,16 +216,43 @@ viewBinding.messageInfoPowerStationLocationIn.leftTitleTv.setText(R.string.message_alarm_detailspower_station_location); viewBinding.messageInfoAlarmTimeIn.leftTitleTv.setText(R.string.message_alarm_details_time); viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(""); viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(""); viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(""); viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(""); viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(""); viewBinding.messageInfoHomeNameTv.setText(mMessageBean.getHomeName()); viewBinding.messageInfoAlarmContentIn.rightContentTv.setText(mMessageBean.getTitle()); viewBinding.messageInfoAlarmDeviceIn.rightContentTv.setText(mMessageBean.getDeviceDesc()); viewBinding.messageInfoAlarmRangeIn.rightContentTv.setText(mMessageBean.getEffectScopeDesc()); viewBinding.messageInfoPowerStationLocationIn.rightContentTv.setText(mMessageBean.getLocationAddress()); String date = TimeUtils.getTimeFromTimestamp(mMessageBean.getCreateTime()); viewBinding.messageInfoAlarmTimeIn.rightContentTv.setText(date); stateStyle(viewBinding.messageInfoAlarmStateTv); if (mMessageStateType.equals(MessageStateType.processed)) { if (mMessageBean.getStatus().equals(MessageStateType.processed)) { //已经解决掉的隐藏 viewBinding.messageInfoBackTv.setVisibility(View.GONE); viewBinding.messageInfoSolveTv.setVisibility(View.GONE); } } /** * 状态样式 * * @param textView 组件 */ private void stateStyle(TextView textView) { String type = "";//FAULT:故障,WARN:告警,EVENT:事件 Drawable drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); if (mMessageBean.getType().equals(MessageAlarmStateType.fault)) { type = _mActivity.getString(R.string.my_power_station_malfunction); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_e34343); } else if (mMessageBean.getType().equals(MessageAlarmStateType.warn)) { type = _mActivity.getString(R.string.message_alarm); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.alarm_ffb300); } else if (mMessageBean.getType().equals(MessageAlarmStateType.event)) { type = _mActivity.getString(R.string.loading_title_tip); drawable = AppCompatResources.getDrawable(_mActivity, R.drawable.state_b9b9b9); } textView.setText(type); textView.setBackground(drawable); } } app/src/main/java/com/hdl/photovoltaic/ui/message/SearchMessageActivity.java
@@ -182,8 +182,7 @@ @Override public void onClick(int position, MessageBean messageBean) { Intent intent = new Intent(); intent.putExtra("msgId", messageBean.getMsgId().toString()); intent.putExtra("messageStateType", mMessageStateType); intent.putExtra("messageBean",new Gson().toJson(messageBean)); intent.setClass(_mActivity, MessageInfoActivity.class); startActivity(intent); } app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.photovoltaic.R; @@ -269,17 +270,8 @@ messageCenterListAdapter.setNoOnclickListener(new MessageCenterListAdapter.OnclickListener() { @Override public void onClick(int position, MessageBean messageBean) { String messageStateType; if (isAlarmDeviceClick) { messageStateType = MessageStateType.untreated; } else { messageStateType = MessageStateType.processed; } Intent intent = new Intent(); intent.putExtra("msgId", messageBean.getMsgId().toString()); intent.putExtra("messageStateType", messageStateType); intent.putExtra("messageBean", new Gson().toJson(messageBean)); intent.setClass(_mActivity, MessageInfoActivity.class); startActivity(intent); } app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -96,6 +96,7 @@ @Override public void onBindView(Bundle savedInstanceState) { getStatusOverview(); initData(); //初始化 initView(); @@ -616,9 +617,14 @@ } else if (eventBus.getType().equals(PowerStationStatus.connecting)) { viewBinding.powerStationConnectedIl.parentLl.performClick(); } else if (eventBus.getType().equals(ConstantManage.station_edit)) { //更新一下住宅 loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); //编辑后更新一下住宅列表 //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true); // getStatusOverview(); if (houseInfoAdapter != null) { initData(); //更新UI houseInfoAdapter.setList(houseListBeanIDList); } } } } app/src/main/res/layout/fragment_home_page.xml
@@ -437,7 +437,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentEnd="true" android:text="PV power generation" android:text="@string/pv_power" android:textColor="@color/text_E6000000" android:textSize="@dimen/text_12" /> app/src/main/res/layout/fragment_house_list.xml
@@ -23,7 +23,7 @@ android:layout_height="match_parent" android:layout_centerVertical="true" android:gravity="center_vertical" android:text="Power Station" android:text="@string/power_station" android:textColor="@color/text_E6000000" android:textSize="@dimen/text_20" android:textStyle="bold" /> @@ -32,13 +32,12 @@ android:id="@+id/device_label" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerVertical="true" android:layout_marginStart="@dimen/dp_21" android:layout_marginEnd="@dimen/dp_4" android:layout_marginStart="19dp" android:layout_marginEnd="7dp" android:layout_toStartOf="@+id/edit_iv" android:layout_toEndOf="@+id/power_station_label" android:gravity="start|center_vertical" android:text="Equipment" android:text="@string/device" android:textColor="@color/text_66000000" android:textSize="@dimen/text_16" app/src/main/res/values/strings.xml
@@ -301,4 +301,7 @@ <string name="search_station">搜索电站</string> <string name="enter_the_device_sn_and_device_name">输入设备SN号/设备名称</string> <string name="enter_alarm_name">输入报警名称</string> <string name="device">设备</string> <string name="Offline_fault">离线有故障</string> </resources>