From a034e242fe844a1ca45d2a28710cb7face1f8fe6 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期日, 28 四月 2024 19:07:56 +0800
Subject: [PATCH] 2024年04月28日19:07:49
---
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java | 243 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 183 insertions(+), 60 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index af3f440..474231d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -7,6 +7,7 @@
import android.text.TextUtils;
import android.view.View;
+import androidx.annotation.RequiresPermission;
import androidx.appcompat.content.res.AppCompatResources;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
@@ -15,15 +16,23 @@
import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartModel;
import com.github.AAChartModel.AAChartCore.AAChartCreator.AAChartView;
import com.github.AAChartModel.AAChartCore.AAChartCreator.AAMoveOverEventMessageModel;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.HDLApp;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.FragmentHomePageBinding;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.enums.TimeType;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlPowerStationDataStatisticsLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.ui.bean.DataOverBean;
+import com.hdl.photovoltaic.ui.bean.SocialContributionBean;
+import com.hdl.photovoltaic.ui.bean.StatisticsBean;
import com.hdl.photovoltaic.utils.TimeUtils;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
@@ -33,6 +42,7 @@
import java.util.Calendar;
import java.util.Date;
+import java.util.List;
/**
@@ -48,7 +58,11 @@
AAChartModel aaChartModel;
- private TimeType timeType = TimeType.day;//鏃堕棿绫诲瀷(榛樿锛氬ぉ)
+ private String[] fieldNames = {"00:00", "02:00", "05:00", "07:00", "09:00", "17:00", "22:00", "23:59"};//鍥炬爣X杞村潗鏍囧�肩殑鏁扮粍
+ private Object[] fieldValues = {35, 70.5, 150.5, 135, 170, 205, 222, 245};//鍥炬爣Y杞村潗鏍囧�肩殑鏁扮粍
+
+
+ private String timeType = TimeType.day;//鏃堕棿绫诲瀷(榛樿锛氬ぉ)
@Override
@@ -63,8 +77,24 @@
initView();
//鍒濆鍖栫晫闈㈢洃鍚櫒
initEvent();
+ //璇诲彇鏁版嵁
+ readDate();
+ }
+ /**
+ * 璇诲彇鏁版嵁
+ */
+ private void readDate() {
+ HdlThreadLogic.runSubThread(new Runnable() {
+ @Override
+ public void run() {
+ getDataOver();
+ getStatistics();
+ getSocialContribution();
+
+ }
+ });
}
private void initEvent() {
@@ -80,6 +110,10 @@
viewBinding.dayTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ if (timeType.equals(TimeType.day)) {
+ //鐐瑰嚮鍚屼竴涓被鍨�
+ return;
+ }
timeType = TimeType.day;
viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
@@ -101,7 +135,7 @@
String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
viewBinding.yearMonthDayTv.setText(dataStr);
- setUpAAChartView();
+ getStatistics();
}
});
@@ -109,6 +143,10 @@
viewBinding.monthTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ if (timeType.equals(TimeType.month)) {
+ //鐐瑰嚮鍚屼竴涓被鍨�
+ return;
+ }
timeType = TimeType.month;
viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
@@ -128,7 +166,7 @@
viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
viewBinding.yearMonthDayTv.setText(dataStr);
- setUpAAChartView();
+ getStatistics();
}
@@ -137,6 +175,10 @@
viewBinding.yearTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
+ if (timeType.equals(TimeType.year)) {
+ //鐐瑰嚮鍚屼竴涓被鍨�
+ return;
+ }
timeType = TimeType.year;
viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
@@ -156,14 +198,18 @@
viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
viewBinding.yearMonthDayTv.setText(dataStr);
- setUpAAChartView();
+ getStatistics();
}
});
//鐢熷懡鏈�
viewBinding.lifeCycleTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- timeType = TimeType.lifecycle;
+ if (timeType.equals(TimeType.all)) {
+ //鐐瑰嚮鍚屼竴涓被鍨�
+ return;
+ }
+ timeType = TimeType.all;
viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
@@ -180,8 +226,7 @@
viewBinding.v2.setVisibility(View.VISIBLE);
viewBinding.v3.setVisibility(View.GONE);
viewBinding.homePageStationSelectTimeLl.setVisibility(View.GONE);
-
- setUpAAChartView();
+ getStatistics();
}
});
@@ -221,49 +266,11 @@
}
});
}
-
- private void initView() {
-
- String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
- viewBinding.yearMonthDayTv.setText(dataStr);
-
- String installed_capacity = getString(R.string.installed_capacity) + "(" + HdlDeviceLogic.kWp + ")";
- viewBinding.homePageStationInfoRl1Text2Tv.setText(installed_capacity);
- String generated_power = getString(R.string.generated_power) + "(" + HdlDeviceLogic.kW + ")";
- viewBinding.homePageStationInfoRl1Text4Tv.setText(generated_power);
- String generation = getString(R.string.generation) + "(" + HdlDeviceLogic.kWp + ")";
- viewBinding.homePageStationInfoRl1TitleTv.setText(generation);
-
- viewBinding.homePageStationInfoRl2DayIc.dataTypeTv.setText(R.string.day_power_generation);
- viewBinding.homePageStationInfoRl2MonIc.dataTypeTv.setText(R.string.month_power_generation);
- viewBinding.homePageStationInfoRl2YearIc.dataTypeTv.setText(R.string.year_power_generation);
- viewBinding.homePageStationInfoRl2CumulativeIc.dataTypeTv.setText(R.string.cumulative_power_generation);
-
-
- viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
- viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
- viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
- viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
- viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
- viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
- viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
- viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
- viewBinding.v1.setVisibility(View.GONE);
- viewBinding.v2.setVisibility(View.VISIBLE);
- viewBinding.v3.setVisibility(View.VISIBLE);
- viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
- setUpAAChartView();//鍥捐〃鍔犺浇
- }
-
-
/**
* 鏃堕棿閫夋嫨鍣�
*/
private void selectedTimePickerBuilder() {
String currDate = viewBinding.yearMonthDayTv.getText().toString();
- if (TextUtils.isEmpty(currDate)) {
- return;
- }
//鏃堕棿閫夋嫨鍣�
Calendar selectedDate = TimeUtils.stringToCalendar(currDate, getTimeDateFormat());
Calendar startDate = Calendar.getInstance();
@@ -274,9 +281,9 @@
boolean day = true;
boolean month = true;
boolean year = true;
- if (timeType == TimeType.month) {
+ if (timeType.equals(TimeType.month)) {
day = false;
- } else if (timeType == TimeType.year) {
+ } else if (timeType.equals(TimeType.year)) {
day = false;
month = false;
}
@@ -285,7 +292,12 @@
public void onTimeSelect(Date date, View v) {//閫変腑浜嬩欢鍥炶皟
String timeDateFormat = getTimeDateFormat();
String time = TimeUtils.dateToString(date, timeDateFormat);
+ if (viewBinding.yearMonthDayTv.getText().toString().equals(time)) {
+ //琛ㄧず鍚屼竴涓椂闂�
+ return;
+ }
viewBinding.yearMonthDayTv.setText(time);
+ getStatistics();
}
}).setType(new boolean[]{year, month, day, false, false, false})// 榛樿鍏ㄩ儴鏄剧ず
.setCancelText(_mActivity.getString(R.string.loading_cancel))//鍙栨秷鎸夐挳鏂囧瓧
@@ -317,15 +329,51 @@
private void setUpAAChartView() {
aaChartView = viewBinding.AAChartView;
aaChartView.callBack = this;
- if (TimeType.day == timeType) {
- aaChartModel = BasicChartComposer.configureAreaChart();
- } else if (TimeType.month == timeType
- || TimeType.year == timeType
- || TimeType.lifecycle == timeType) {
+ if (TimeType.day.equals(timeType)) {
+ aaChartModel = BasicChartComposer.configureAreaChart("Pv鍙戠數鍔熺巼", fieldNames, fieldValues);
+ } else if (TimeType.month.equals(timeType)
+ || TimeType.year.equals(timeType)
+ || TimeType.all.equals(timeType)) {
aaChartModel = configureColorfulColumnChart();
}
aaChartView.aa_drawChartWithChartModel(aaChartModel);
}
+
+ private void initView() {
+
+ String dataStr = TimeUtils.getDateTimestamp(getCurrentTimestamp(), getTimeDateFormat());
+ viewBinding.yearMonthDayTv.setText(dataStr);
+
+ String installed_capacity = getString(R.string.installed_capacity) + "(" + HdlDeviceLogic.kWp + ")";
+ viewBinding.infoRl1Text2Tv.setText(installed_capacity);
+ String generated_power = getString(R.string.generated_power) + "(" + HdlDeviceLogic.kW + ")";
+ viewBinding.infoRl1Text4Tv.setText(generated_power);
+ String generation = getString(R.string.generation) + "(" + HdlDeviceLogic.kWp + ")";
+ viewBinding.homePageStationInfoRl1TitleTv.setText(generation);
+
+ viewBinding.homePageStationInfoRl2DayIc.dataTypeTv.setText(R.string.day_power_generation);
+ viewBinding.homePageStationInfoRl2MonIc.dataTypeTv.setText(R.string.month_power_generation);
+ viewBinding.homePageStationInfoRl2YearIc.dataTypeTv.setText(R.string.year_power_generation);
+ viewBinding.homePageStationInfoRl2CumulativeIc.dataTypeTv.setText(R.string.cumulative_power_generation);
+
+ viewBinding.unitTv.setText(HdlDeviceLogic.kW);
+ viewBinding.dayTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.drawable.time_selected_38c494));
+ viewBinding.dayTv.setTextColor(_mActivity.getColor(R.color.text_38C494));
+ viewBinding.monthTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
+ viewBinding.monthTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
+ viewBinding.yearTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
+ viewBinding.yearTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
+ viewBinding.lifeCycleTv.setBackground(AppCompatResources.getDrawable(_mActivity, R.color.text_00000000));
+ viewBinding.lifeCycleTv.setTextColor(_mActivity.getColor(R.color.text_40000000));
+ viewBinding.v1.setVisibility(View.GONE);
+ viewBinding.v2.setVisibility(View.VISIBLE);
+ viewBinding.v3.setVisibility(View.VISIBLE);
+ viewBinding.homePageStationSelectTimeLl.setVisibility(View.VISIBLE);
+ setUpAAChartView();//鍥捐〃鍔犺浇
+ }
+
+
+
@Override
@@ -358,6 +406,85 @@
/**
+ * 鑾峰彇缁熻姒傝鏁版嵁(鍏徃缁村害)
+ */
+ private void getDataOver() {
+ HdlPowerStationDataStatisticsLogic.getInstance().getDataOver(new CloudCallBeak<DataOverBean>() {
+ @Override
+ public void onSuccess(DataOverBean dataOverBean) {
+ if (dataOverBean == null) {
+ return;
+ }
+ viewBinding.infoRl1Text1Tv.setText(dataOverBean.getInstalledCapacity());
+ viewBinding.infoRl1Text3Tv.setText(dataOverBean.getPower());
+ viewBinding.infoRl1FText1Tv.setText(dataOverBean.getPowerRatio());
+
+ viewBinding.homePageStationInfoRl2DayIc.dataTv.setText(dataOverBean.getTodayElectricity());
+ viewBinding.homePageStationInfoRl2MonIc.dataTv.setText(dataOverBean.getMonthElectricity());
+ viewBinding.homePageStationInfoRl2YearIc.dataTv.setText(dataOverBean.getYearElectricity());
+ viewBinding.homePageStationInfoRl2CumulativeIc.dataTv.setText(dataOverBean.getTotalElectricity());
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+
+ }
+ });
+ }
+
+ /**
+ * 鍙戠數閲忕粺璁�(鍏徃缁村害)
+ */
+ private void getStatistics() {
+ String currDate = viewBinding.yearMonthDayTv.getText().toString();
+ HdlPowerStationDataStatisticsLogic.getInstance().getStatistics(currDate, timeType, new CloudCallBeak<List<StatisticsBean>>() {
+ @Override
+ public void onSuccess(List<StatisticsBean> list) {
+ if (list == null || list.size() == 0) {
+ return;
+ }
+ String[] keys = new String[list.size()];
+ Object[] values = new Object[list.size()];
+ for (int i = 0; i < list.size(); i++) {
+ keys[i] = list.get(i).getFieldName();
+ values[i] = list.get(i).getFieldValue();
+ }
+ fieldNames = keys;
+ fieldValues = values;
+ setUpAAChartView();
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+
+ }
+ });
+ }
+
+ /**
+ * 鍙戠數閲忕粺璁�(鍏徃缁村害)
+ */
+ private void getSocialContribution() {
+ HdlPowerStationDataStatisticsLogic.getInstance().getSocialContribution(new CloudCallBeak<SocialContributionBean>() {
+ @Override
+ public void onSuccess(SocialContributionBean socialContributionBean) {
+ if (socialContributionBean == null) {
+ return;
+ }
+ viewBinding.socialContributionData1Tv.setText(socialContributionBean.getCoal());
+ viewBinding.socialContributionData2Tv.setText(socialContributionBean.getCo2());
+ viewBinding.socialContributionData3Tv.setText(socialContributionBean.getTreePlanting());
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+
+ }
+ });
+ }
+
+
+ /**
* 鑾峰彇褰撳墠绯荤粺鏃ユ湡鏃堕棿鎴�
*
* @return 鏃堕棿鎴�
@@ -374,22 +501,22 @@
private String getTimeDateFormat() {
String timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
switch (timeType) {
- case day: {
+ case TimeType.day: {
timeDateFormat = TimeUtils.zhDateYearMonthDayFormat;
if (!UserConfigManage.getInstance().isZh()) {
timeDateFormat = TimeUtils.enDateYearMonthDayFormat;
}
}
break;
- case month: {
+ case TimeType.month: {
timeDateFormat = TimeUtils.zhDateYearMonthFormat;
if (!UserConfigManage.getInstance().isZh()) {
timeDateFormat = TimeUtils.enDateYearMonthFormat;
}
}
break;
- case year:
- case lifecycle: {
+ case TimeType.year:
+ case TimeType.all: {
timeDateFormat = TimeUtils.zhDateYearFormat;
if (!UserConfigManage.getInstance().isZh()) {
timeDateFormat = TimeUtils.enDateYearFormat;
@@ -399,10 +526,6 @@
}
return timeDateFormat;
- }
-
- public enum TimeType {
- day, month, year, lifecycle
}
--
Gitblit v1.8.0