mac
2024-04-01 6ec45c8853d3cb6a592ecbe1d062094a77653b0f
app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -11,8 +11,7 @@
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonObject;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseActivity;
@@ -26,9 +25,11 @@
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.other.HdlUniLogic;
import com.hdl.photovoltaic.ui.bean.MessageBean;
import com.hdl.photovoltaic.ui.message.MessageInfoActivity;
import com.hdl.photovoltaic.ui.newC.adapter.MessageCenterListAdapter;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.widget.TypeTitleListDialog;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
@@ -58,8 +59,19 @@
    private int mTotalCount1 = 0;//消息数量总数
    private int mTotalCount2 = 0;//消息数量总数
    private String mFilterKye = FilterType.all;//过滤类型
    private String mFilterValue = FilterType.all;//过滤类型值
    private String mDeviceTypeFilterKye = FilterType.deviceType;//过滤类型 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元)
    private String mDeviceTypeFilterValue = FilterType.all;//过滤类型值 deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元)
    private String mTypeFilterKye = FilterType.all;//过滤类型 type(FAULT :故障; WARN :告警; EVENT :事件(提示));
    private String mTypeFilterValue = FilterType.all;//过滤类型值 type(FAULT :故障; WARN :告警; EVENT :事件(提示));
    private String mTimeTypeFilterKye = FilterType.all;//过滤类型  timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
    private String mTimeTypeFilterValue = FilterType.all;//过滤类型值  timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
    //deviceType_filter_value deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元);
    //     *                                type(FAULT :故障; WARN :告警; EVENT :事件(提示));
    //     *                                timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
    private boolean isLoadingMore = false; // 标记正在加载更多数据
    LinearLayoutManager mLayoutManager;
@@ -71,6 +83,8 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        setNotificationBarBackgroundColor(CustomColor.white);
        setStatusBarTextColor();
        //初始化数据
        initData();
        //初始化
@@ -78,7 +92,14 @@
        //初始化界面监听器
        initEvent();
        //进来读取一次数据(为了更新currentPage,currentTotal这个值)
        loadNextPageMessageList(1, true, FilterType.all, FilterType.all);
        loadNextPageMessageList(1, true, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all);
    }
    @Override
    protected void onResume() {
        super.onResume();
        //进来读取一次数据(为了更新currentPage,currentTotal这个值)
//        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
    }
    private void initEvent() {
@@ -87,6 +108,12 @@
            @Override
            public void onClick(View v) {
                clearCacheData();
                HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER);
                JsonObject jsonObject = new JsonObject();
                jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
                uniCallBackBaseBean.setData(jsonObject);
                HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                finish();
            }
        });
@@ -99,7 +126,9 @@
                    @Override
                    public void onSuccess(Boolean obj) {
                        hideLoading();
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
//                        HdlMessageLogic.getInstance().setAllRead(true);
//                        updateListData();
                    }
                    @Override
@@ -126,9 +155,9 @@
                    public void onClick(int position, String title) {
                        viewBinding.allDeviceTitleTv.setText(title);
                        mFilterKye = FilterType.deviceType;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                        mDeviceTypeFilterKye = FilterType.deviceType;
                        mDeviceTypeFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                    }
                });
@@ -150,9 +179,9 @@
                    @Override
                    public void onClick(int position, String title) {
                        viewBinding.allGradeTitleTv.setText(title);
                        mFilterKye = FilterType.type;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                        mTypeFilterKye = FilterType.type;
                        mTypeFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                    }
                });
            }
@@ -171,9 +200,9 @@
                    @Override
                    public void onClick(int position, String title) {
                        viewBinding.allTimeTitleTv.setText(title);
                        mFilterKye = FilterType.timeType;
                        mFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                        mTimeTypeFilterKye = FilterType.timeType;
                        mTimeTypeFilterValue = findFilterValueString(title);
                        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                    }
                });
            }
@@ -188,7 +217,7 @@
                }
                isAlarmDeviceClick = true;
                refreshBottomStyle(true);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
            }
        });
        //告警记录按钮
@@ -200,7 +229,7 @@
                }
                isAlarmDeviceClick = false;
                refreshBottomStyle(false);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
            }
        });
@@ -211,7 +240,7 @@
            @Override
            public void onRefresh() {
                viewBinding.messageContentSrl.setRefreshing(false);
                loadNextPageMessageList(1, true, mFilterKye, mFilterValue);
                loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
            }
        });
        //上拉按钮
@@ -231,7 +260,7 @@
                    if (!isLoadingMore) {
                        // 滑动到了底部,执行相应的操作
                        HdlLogLogic.print("--->滑动到了底部");
                        loadNextPageMessageList(++mCurrentPage, false, mFilterKye, mFilterValue);
                        loadNextPageMessageList(++mCurrentPage, false, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
                    }
                }
            }
@@ -276,14 +305,17 @@
    /**
     * 加载一页数据
     *
     * @param pageNo        页数
     * @param isShowLoading 是否启动加载框 true启动
     * @param filter_key    类型(设备,等级,时间)
     * @param filter_value  deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元);
     *                      type(FAULT :故障; WARN :告警; EVENT :事件(提示));
     *                      timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
     * @param pageNo                  页数
     * @param isShowLoading           是否启动加载框 true启动
     * @param deviceType_filter_key   类型(设备,等级,时间)
     * @param deviceType_filter_value deviceType(INV :逆变器;BMS :BMS控制盒;BATTERY :电池单元);
     *                                type(FAULT :故障; WARN :告警; EVENT :事件(提示));
     *                                timeType(TODAY :今天;LAST_3_DAYS: 近3天;LAST_7_DAYS :近7天;LAST_30_DAYS :近30天);
     */
    private void loadNextPageMessageList(int pageNo, boolean isShowLoading, String filter_key, String filter_value) {
    private void loadNextPageMessageList(int pageNo, boolean isShowLoading,
                                         String deviceType_filter_key, String deviceType_filter_value,
                                         String type_filter_key, String type_filter_value,
                                         String timeType_filter_key, String timeType_filter_value) {
        if (pageNo == 1) {
            //表示从第一页可以读取,默认清空所有缓存数据;
            clearCacheData();
@@ -304,75 +336,43 @@
        } else {
            messageStateType = MessageStateType.processed;
        }
        HdlMessageLogic.getInstance().getPageNoMessageList_C(pageNo, messageStateType, filter_key, filter_value, new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
            @Override
            public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
                if (messageListClass != null) {
                    mCurrentTotal = (int) messageListClass.getTotalPage();
                    mCurrentPage = (int) messageListClass.getPageNo();
                    int totalCount = (int) messageListClass.getTotalCount();
                    if (isAlarmDeviceClick) {
                        mTotalCount1 = totalCount;
                    } else {
                        mTotalCount2 = totalCount;
                    }
                    updateListData();
                }
                isLoadingMore = false;
                if (isShowLoading) {
                    hideLoading();
                }
            }
            @Override
            public void onFailure(HDLException e) {
                if (mCurrentPage > 1) {
                    --mCurrentPage;
                }
                isLoadingMore = false;
                if (isShowLoading) {
                    hideLoading();
                }
            }
        });
    }
    /**
     * 读取消息【未读数量】
     */
    private void getUnreadCount() {
        HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String data) {
                HdlThreadLogic.runMainThread(new Runnable() {
        HdlMessageLogic.getInstance().getPageNoMessageList_C(UserConfigManage.getInstance().getHomeId(), pageNo, messageStateType,
                deviceType_filter_key, deviceType_filter_value,
                type_filter_key, type_filter_value,
                timeType_filter_key, timeType_filter_value,
                new CloudCallBeak<HdlMessageLogic.MessageListClass>() {
                    @Override
                    public void run() {
                        JSONObject jsonObject = JSON.parseObject(data);
                        if (jsonObject.containsKey("untreatedCount")) {
                            //未处理数量
                            String untreatedCount = jsonObject.getString("untreatedCount");
                            refreshCount();
                    public void onSuccess(HdlMessageLogic.MessageListClass messageListClass) {
                        if (messageListClass != null) {
                            mCurrentTotal = (int) messageListClass.getTotalPage();
                            mCurrentPage = (int) messageListClass.getPageNo();
                            int totalCount = (int) messageListClass.getTotalCount();
                            if (isAlarmDeviceClick) {
                                mTotalCount1 = totalCount;
                            } else {
                                mTotalCount2 = totalCount;
                            }
                            updateListData();
                        }
                        if (jsonObject.containsKey("unreadCount")) {
                            //未读数量
                            String unreadCount = jsonObject.getString("unreadCount");
                        isLoadingMore = false;
                        if (isShowLoading) {
                            hideLoading();
                        }
                    }
                    @Override
                    public void onFailure(HDLException e) {
                        if (mCurrentPage > 1) {
                            --mCurrentPage;
                        }
                        isLoadingMore = false;
                        if (isShowLoading) {
                            hideLoading();
                        }
                    }
                });
            }
            @Override
            public void onFailure(HDLException e) {
                TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
                if (textView != null) {
                    textView.setVisibility(View.GONE);
                }
            }
        });
    }
@@ -496,7 +496,13 @@
     */
    private void updateCacheData() {
        mList.clear();
        mList.addAll(HdlMessageLogic.getInstance().getAllMessageList());
        if (isAlarmDeviceClick) {
            //设备报警
            mList.addAll(HdlMessageLogic.getInstance().getNascentMessageMemoryList());
        } else {
            //报警记录
            mList.addAll(HdlMessageLogic.getInstance().getRecoverMessageMemoryList());
        }
    }
@@ -571,4 +577,19 @@
        }
        return stringList;
    }
    /**
     * 物理按键返回事件
     */
    @Override
    public void onBackPressed() {
        clearCacheData();
        HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
        uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_REFRESH_UNREAD_NUMBER);
        JsonObject jsonObject = new JsonObject();
        jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
        uniCallBackBaseBean.setData(jsonObject);
        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
        super.onBackPressed();
    }
}