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