package cn.flightfeather.thirdappmodule.dataanalysis
|
|
import android.graphics.Color
|
import android.os.Bundle
|
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 cn.flightfeather.thirdappmodule.CommonApplication
|
import cn.flightfeather.thirdappmodule.R
|
import cn.flightfeather.thirdappmodule.adapter.AllListViewAdapter
|
import cn.flightfeather.thirdappmodule.adapter.AllRecyclerViewAdapter
|
import cn.flightfeather.thirdappmodule.bean.entity.Domainitem
|
import cn.flightfeather.thirdappmodule.bean.entity.Evaluation
|
import cn.flightfeather.thirdappmodule.bean.vo.TaskVo
|
import cn.flightfeather.thirdappmodule.httpservice.EvaluationService
|
import cn.flightfeather.thirdappmodule.httpservice.TaskService
|
import cn.flightfeather.thirdappmodule.util.CommonUtils
|
import cn.flightfeather.thirdappmodule.util.Constant
|
import cn.flightfeather.thirdappmodule.util.Domain
|
import com.ping.greendao.gen.DomainitemDao
|
import retrofit2.Call
|
import retrofit2.Callback
|
import retrofit2.Response
|
import java.util.*
|
|
/**
|
* A simple [Fragment] subclass.
|
*/
|
class AnysisRankFragment : Fragment(), View.OnClickListener, AdapterView.OnItemSelectedListener {
|
private var application: CommonApplication? = null
|
private var taskService: TaskService? = null
|
private var evaluationService: EvaluationService? = null
|
private val taskVoList: MutableList<TaskVo> = ArrayList() //所有顶层任务
|
private var sceneList: MutableList<Domainitem> = ArrayList() //场景
|
private val sceneEvaluationList: MutableList<Evaluation> = ArrayList() //场景评分排名
|
private val townEvaluationList: MutableList<Evaluation> = ArrayList() //街道评分排名
|
|
//Spinner
|
private var sp_top_task: Spinner? = null
|
private var sp_scene: Spinner? = null
|
private var topTaskAdapter: AllListViewAdapter<TaskVo>? = null
|
private var sceneAdapter: AllListViewAdapter<Domainitem>? = null
|
|
//TextView
|
private var tv_no: TextView? = null
|
private var tv_scene_rank: TextView? = null
|
private var tv_town_rank: TextView? = null
|
|
//RecyclerView
|
private var rv_rank: RecyclerView? = null
|
private val rankAdapterMap = HashMap<Int, AllRecyclerViewAdapter<Evaluation>>()
|
override fun onCreateView(
|
inflater: LayoutInflater, container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
return inflater.inflate(R.layout.fragment_anysis_rank, container, false)
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
application = activity!!.application as CommonApplication
|
taskService = application!!.retrofit.create(TaskService::class.java)
|
evaluationService = application!!.retrofit.create(EvaluationService::class.java)
|
initUI(view)
|
initSpinnerData()
|
initSpinner(view)
|
initRecyclerView(view)
|
}
|
|
override fun onHiddenChanged(hidden: Boolean) {
|
super.onHiddenChanged(hidden)
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
}
|
|
private fun initUI(view: View) {
|
tv_no = view.findViewById<View>(R.id.tv_no) as TextView
|
tv_scene_rank = view.findViewById<View>(R.id.tv_scene_rank) as TextView
|
tv_town_rank = view.findViewById<View>(R.id.tv_town_rank) as TextView
|
tv_scene_rank!!.setOnClickListener(this)
|
tv_town_rank!!.setOnClickListener(this)
|
tv_scene_rank!!.isSelected = true
|
}
|
|
/**
|
* 下拉框数据
|
*/
|
private fun initSpinnerData() {
|
//顶层任务
|
val getTopClassTaskList = taskService!!.getTaskProgress("0")
|
getTopClassTaskList.enqueue(object : Callback<List<TaskVo>?> {
|
override fun onResponse(call: Call<List<TaskVo>?>, response: Response<List<TaskVo>?>) {
|
val list = response.body()
|
if (list is List<TaskVo>) {
|
taskVoList.addAll(list)
|
topTaskAdapter!!.notifyDataSetChanged()
|
// sp_top_task.setSelection(0);
|
}
|
}
|
|
override fun onFailure(call: Call<List<TaskVo>?>, t: Throwable) {}
|
})
|
//场景
|
val domainitemDao = application!!.daoSession.domainitemDao
|
val queryBuilder = domainitemDao.queryBuilder()
|
.where(DomainitemDao.Properties.Dcguid.eq(Domain.DOMAINGUID_SCENSETYPE))
|
.orderAsc(DomainitemDao.Properties.Value)
|
sceneList = ArrayList()
|
sceneList.addAll(queryBuilder.list())
|
}
|
|
/**
|
* 下拉框数据绑定
|
* @param view
|
*/
|
private fun initSpinner(view: View) {
|
sp_top_task = view.findViewById<View>(R.id.sp_top_task) as Spinner
|
sp_scene = view.findViewById<View>(R.id.sp_scene) as Spinner
|
initAdapter()
|
sp_top_task!!.onItemSelectedListener = this
|
sp_scene!!.onItemSelectedListener = this
|
// sp_top_task.setSelection(0);
|
// sp_scene.setSelection(0);
|
}
|
|
/**
|
* 下拉框数据适配器
|
*/
|
private fun initAdapter() {
|
topTaskAdapter = object : AllListViewAdapter<TaskVo>(taskVoList as ArrayList<TaskVo>, R.layout.item_spinner_simple_text) {
|
override fun bindView(holder: ViewHolder, obj: TaskVo) {
|
holder.setText(R.id.tv_item, obj.name)
|
}
|
}
|
sp_top_task!!.adapter = topTaskAdapter
|
topTaskAdapter?.notifyDataSetChanged()
|
sceneAdapter = object : AllListViewAdapter<Domainitem>(sceneList as ArrayList<Domainitem>, R.layout.item_spinner_simple_text) {
|
override fun bindView(holder: ViewHolder, obj: Domainitem) {
|
holder.setText(R.id.tv_item, obj.text)
|
}
|
}
|
sp_scene!!.adapter = sceneAdapter
|
sceneAdapter?.notifyDataSetChanged()
|
}
|
|
/**
|
* 排名列表
|
* @param view
|
*/
|
private fun initRecyclerView(view: View) {
|
rv_rank = view.findViewById<View>(R.id.rv_rank) as RecyclerView
|
val scenetypeid = (sp_scene!!.selectedItem as Domainitem).value
|
val adapter: AllRecyclerViewAdapter<Evaluation> = object : AllRecyclerViewAdapter<Evaluation>(sceneEvaluationList, R.layout.item_scene_rank, context) {
|
override fun bindView(holder: MyViewHolder, obj: Evaluation, bool: Boolean, position: Int) {
|
holder.setText(R.id.tv_no, (position + 1).toString())
|
.setImageResource(R.id.iv_scene_type, CommonUtils.getIconBySceneType(scenetypeid))
|
.setText(R.id.tv_scene_name, obj.scensename)
|
.setText(R.id.tv_district, obj.townname)
|
.setText(R.id.tv_standard, obj.resultstandardbef)
|
when (obj.resultstandardbef) {
|
Constant.STANDARD_1 -> holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_1)
|
.setTextColor(R.id.tv_suggestion, Color.GREEN)
|
Constant.STANDARD_2 -> holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_2)
|
.setTextColor(R.id.tv_suggestion, Color.YELLOW)
|
Constant.STANDARD_3 -> holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_3)
|
.setTextColor(R.id.tv_suggestion, Color.RED)
|
}
|
}
|
}
|
rankAdapterMap[R.id.tv_scene_rank] = adapter
|
val layoutManager = LinearLayoutManager(context)
|
layoutManager.orientation = LinearLayoutManager.VERTICAL
|
rv_rank!!.layoutManager = layoutManager
|
rv_rank!!.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
|
rv_rank!!.adapter = rankAdapterMap[R.id.tv_scene_rank]
|
}
|
|
/**
|
* 联网查询
|
*/
|
private fun search() {
|
try {
|
val tguid = (sp_top_task!!.selectedItem as TaskVo).tguid
|
val scenetypeid = (sp_scene!!.selectedItem as Domainitem).value
|
val getRank0fScene = evaluationService!!.getRank0fScene(tguid, scenetypeid, null)
|
getRank0fScene.enqueue(object : Callback<List<Evaluation>?> {
|
override fun onResponse(call: Call<List<Evaluation>?>, response: Response<List<Evaluation>?>) {
|
val list = response.body()
|
if (list is List<Evaluation>) {
|
sceneEvaluationList.addAll(list)
|
rankAdapterMap[R.id.tv_scene_rank]!!.notifyDataSetChanged()
|
} else if (response.body() == null) {
|
Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show()
|
}
|
}
|
|
override fun onFailure(call: Call<List<Evaluation>?>, t: Throwable) {}
|
})
|
val getRankofTown = evaluationService!!.getRankofTown(tguid, scenetypeid)
|
getRankofTown.enqueue(object : Callback<List<Evaluation>?> {
|
override fun onResponse(call: Call<List<Evaluation>?>, response: Response<List<Evaluation>?>) {
|
val list = response.body()
|
if (list is List<Evaluation>) {
|
townEvaluationList.addAll(list)
|
} else if (response.body() == null) {
|
Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show()
|
}
|
}
|
|
override fun onFailure(call: Call<List<Evaluation>?>, t: Throwable) {}
|
})
|
} catch (e: NullPointerException) {
|
e.printStackTrace()
|
}
|
}
|
|
override fun onClick(v: View) {
|
when (v.id) {
|
R.id.tv_town_rank -> {
|
tv_town_rank!!.isSelected = true
|
tv_scene_rank!!.isSelected = false
|
tv_town_rank!!.setTextColor(Color.WHITE)
|
tv_scene_rank!!.setTextColor(Color.BLACK)
|
rv_rank!!.adapter = rankAdapterMap[R.id.tv_town_rank]
|
}
|
R.id.tv_scene_rank -> {
|
tv_scene_rank!!.isSelected = true
|
tv_town_rank!!.isSelected = false
|
tv_scene_rank!!.setTextColor(Color.WHITE)
|
tv_town_rank!!.setTextColor(Color.BLACK)
|
rv_rank!!.adapter = rankAdapterMap[R.id.tv_scene_rank]
|
}
|
}
|
}
|
|
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
|
when (parent.id) {
|
R.id.sp_top_task -> search()
|
R.id.sp_scene -> search()
|
}
|
}
|
|
override fun onNothingSelected(parent: AdapterView<*>?) {}
|
}
|