package cn.flightfeather.thirdapp.dataanalysis;
|
|
|
import android.content.Context;
|
import android.graphics.Color;
|
import android.os.Bundle;
|
import android.support.annotation.Nullable;
|
import android.support.v4.app.Fragment;
|
import android.support.v7.widget.DividerItemDecoration;
|
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.AdapterView;
|
import android.widget.Spinner;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.ping.greendao.gen.DomainitemDao;
|
|
import org.greenrobot.greendao.query.QueryBuilder;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
|
import cn.flightfeather.thirdapp.CommonApplication;
|
import cn.flightfeather.thirdapp.R;
|
import cn.flightfeather.thirdapp.adapter.AllListViewAdapter;
|
import cn.flightfeather.thirdapp.adapter.AllRecyclerViewAdapter;
|
import cn.flightfeather.thirdapp.bean.entity.Domainitem;
|
import cn.flightfeather.thirdapp.bean.entity.Evaluation;
|
import cn.flightfeather.thirdapp.bean.vo.TaskVo;
|
import cn.flightfeather.thirdapp.httpservice.EvaluationService;
|
import cn.flightfeather.thirdapp.httpservice.TaskService;
|
import cn.flightfeather.thirdapp.util.CommonUtils;
|
import cn.flightfeather.thirdapp.util.Constant;
|
import cn.flightfeather.thirdapp.util.Domain;
|
import retrofit2.Call;
|
import retrofit2.Callback;
|
import retrofit2.Response;
|
|
/**
|
* A simple {@link Fragment} subclass.
|
*/
|
public class AnysisRankFragment extends Fragment implements View.OnClickListener, AdapterView.OnItemSelectedListener {
|
|
private CommonApplication application;
|
private Context context;
|
private TaskService taskService;
|
private EvaluationService evaluationService;
|
|
private List<TaskVo> taskVoList = new ArrayList<>();//所有顶层任务
|
private List<Domainitem> sceneList = new ArrayList<>();//场景
|
private List<Evaluation> sceneEvaluationList = new ArrayList<>();//场景评分排名
|
private List<Evaluation> townEvaluationList = new ArrayList<>();//街道评分排名
|
//Spinner
|
private Spinner sp_top_task;
|
private Spinner sp_scene;
|
private AllListViewAdapter<TaskVo> topTaskAdapter = null;
|
private AllListViewAdapter<Domainitem> sceneAdapter = null;
|
//TextView
|
private TextView tv_no;
|
private TextView tv_scene_rank;
|
private TextView tv_town_rank;
|
//RecyclerView
|
private RecyclerView rv_rank;
|
private HashMap<Integer, AllRecyclerViewAdapter<Evaluation>> rankAdapterMap = new HashMap<>();
|
|
public AnysisRankFragment() {
|
// Required empty public constructor
|
}
|
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
return inflater.inflate(R.layout.fragment_anysis_rank, container, false);
|
}
|
|
@Override
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
super.onViewCreated(view, savedInstanceState);
|
|
application = (CommonApplication) getActivity().getApplication();
|
context = getContext();
|
taskService = application.getRetrofit().create(TaskService.class);
|
evaluationService = application.getRetrofit().create(EvaluationService.class);
|
|
initUI(view);
|
initSpinnerData();
|
initSpinner(view);
|
initRecyclerView(view);
|
}
|
|
@Override
|
public void onHiddenChanged(boolean hidden) {
|
super.onHiddenChanged(hidden);
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
}
|
|
private void initUI(View view) {
|
tv_no = (TextView) view.findViewById(R.id.tv_no);
|
tv_scene_rank = (TextView) view.findViewById(R.id.tv_scene_rank);
|
tv_town_rank = (TextView) view.findViewById(R.id.tv_town_rank);
|
|
tv_scene_rank.setOnClickListener(this);
|
tv_town_rank.setOnClickListener(this);
|
|
tv_scene_rank.setSelected(true);
|
}
|
|
/**
|
* 下拉框数据
|
*/
|
private void initSpinnerData() {
|
//顶层任务
|
Call<List<TaskVo>> getTopClassTaskList = taskService.getTaskProgress("0");
|
getTopClassTaskList.enqueue(new Callback<List<TaskVo>>() {
|
@Override
|
public void onResponse(Call<List<TaskVo>> call, Response<List<TaskVo>> response) {
|
if (response.body() != null) {
|
taskVoList.addAll(response.body());
|
topTaskAdapter.notifyDataSetChanged();
|
// sp_top_task.setSelection(0);
|
}
|
}
|
|
@Override
|
public void onFailure(Call<List<TaskVo>> call, Throwable t) {
|
|
}
|
});
|
//场景
|
DomainitemDao domainitemDao = application.getDaoSession().getDomainitemDao();
|
QueryBuilder<Domainitem> queryBuilder = domainitemDao.queryBuilder()
|
.where(DomainitemDao.Properties.Dcguid.eq(Domain.DOMAINGUID_SCENSETYPE))
|
.orderAsc(DomainitemDao.Properties.Value);
|
sceneList = new ArrayList<>();
|
sceneList.addAll(queryBuilder.list());
|
}
|
|
/**
|
* 下拉框数据绑定
|
* @param view
|
*/
|
private void initSpinner(View view) {
|
sp_top_task = (Spinner) view.findViewById(R.id.sp_top_task);
|
sp_scene = (Spinner) view.findViewById(R.id.sp_scene);
|
|
initAdapter();
|
|
sp_top_task.setOnItemSelectedListener(this);
|
sp_scene.setOnItemSelectedListener(this);
|
// sp_top_task.setSelection(0);
|
// sp_scene.setSelection(0);
|
}
|
|
/**
|
* 下拉框数据适配器
|
*/
|
private void initAdapter() {
|
topTaskAdapter = new AllListViewAdapter<TaskVo>((ArrayList<TaskVo>) taskVoList, R.layout.item_spinner_simple_text) {
|
@Override
|
public void bindView(ViewHolder holder, TaskVo obj) {
|
holder.setText(R.id.tv_item, obj.getName());
|
}
|
};
|
sp_top_task.setAdapter(topTaskAdapter);
|
topTaskAdapter.notifyDataSetChanged();
|
|
sceneAdapter = new AllListViewAdapter<Domainitem>((ArrayList<Domainitem>) sceneList, R.layout.item_spinner_simple_text) {
|
@Override
|
public void bindView(ViewHolder holder, Domainitem obj) {
|
holder.setText(R.id.tv_item, obj.getText());
|
}
|
};
|
sp_scene.setAdapter(sceneAdapter);
|
sceneAdapter.notifyDataSetChanged();
|
}
|
|
/**
|
* 排名列表
|
* @param view
|
*/
|
private void initRecyclerView(View view) {
|
rv_rank = (RecyclerView) view.findViewById(R.id.rv_rank);
|
final String scenetypeid = ((Domainitem) sp_scene.getSelectedItem()).getValue();
|
AllRecyclerViewAdapter<Evaluation> adapter = new AllRecyclerViewAdapter<Evaluation>(sceneEvaluationList, R.layout.item_scene_rank, context) {
|
@Override
|
public void bindView(AllRecyclerViewAdapter.MyViewHolder holder, Evaluation obj, boolean bool, int position) {
|
holder.setText(R.id.tv_no, String.valueOf(position + 1))
|
.setImageResource(R.id.iv_scene_type, CommonUtils.getIconBySceneType(scenetypeid))
|
.setText(R.id.tv_scene_name, obj.getScensename())
|
.setText(R.id.tv_district, obj.getTownname())
|
.setText(R.id.tv_standard, obj.getResultstandardbef());
|
switch (obj.getResultstandardbef()) {
|
case Constant.STANDARD_1:
|
holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_1)
|
.setTextColor(R.id.tv_suggestion, Color.GREEN);
|
break;
|
case Constant.STANDARD_2:
|
holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_2)
|
.setTextColor(R.id.tv_suggestion, Color.YELLOW);
|
break;
|
case Constant.STANDARD_3:
|
holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_3)
|
.setTextColor(R.id.tv_suggestion, Color.RED);
|
break;
|
}
|
}
|
};
|
rankAdapterMap.put(R.id.tv_scene_rank, adapter);
|
LinearLayoutManager layoutManager = new LinearLayoutManager(context);
|
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
|
rv_rank.setLayoutManager(layoutManager);
|
rv_rank.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));
|
rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_scene_rank));
|
}
|
|
/**
|
* 联网查询
|
*/
|
private void search() {
|
try {
|
String tguid = ((TaskVo) sp_top_task.getSelectedItem()).getTguid();
|
String scenetypeid = ((Domainitem) sp_scene.getSelectedItem()).getValue();
|
Call<List<Evaluation>> getRank0fScene = evaluationService.getRank0fScene(tguid, scenetypeid, null);
|
getRank0fScene.enqueue(new Callback<List<Evaluation>>() {
|
@Override
|
public void onResponse(Call<List<Evaluation>> call, Response<List<Evaluation>> response) {
|
if (response.body() != null) {
|
sceneEvaluationList.addAll(response.body());
|
rankAdapterMap.get(R.id.tv_scene_rank).notifyDataSetChanged();
|
} else if (response.body() == null) {
|
Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
@Override
|
public void onFailure(Call<List<Evaluation>> call, Throwable t) {
|
|
}
|
});
|
|
Call<List<Evaluation>> getRankofTown = evaluationService.getRankofTown(tguid, scenetypeid);
|
getRankofTown.enqueue(new Callback<List<Evaluation>>() {
|
@Override
|
public void onResponse(Call<List<Evaluation>> call, Response<List<Evaluation>> response) {
|
if (response.body() != null) {
|
townEvaluationList.addAll(response.body());
|
} else if (response.body() == null) {
|
Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show();
|
}
|
}
|
|
@Override
|
public void onFailure(Call<List<Evaluation>> call, Throwable t) {
|
|
}
|
});
|
} catch (NullPointerException e) {
|
e.printStackTrace();
|
}
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_town_rank:
|
tv_town_rank.setSelected(true);
|
tv_scene_rank.setSelected(false);
|
tv_town_rank.setTextColor(Color.WHITE);
|
tv_scene_rank.setTextColor(Color.BLACK);
|
rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_town_rank));
|
break;
|
case R.id.tv_scene_rank:
|
tv_scene_rank.setSelected(true);
|
tv_town_rank.setSelected(false);
|
tv_scene_rank.setTextColor(Color.WHITE);
|
tv_town_rank.setTextColor(Color.BLACK);
|
rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_scene_rank));
|
break;
|
}
|
}
|
|
@Override
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
switch (parent.getId()) {
|
case R.id.sp_top_task:
|
search();
|
break;
|
case R.id.sp_scene:
|
search();
|
break;
|
}
|
}
|
|
@Override
|
public void onNothingSelected(AdapterView<?> parent) {
|
|
}
|
}
|