From e102578ebfc95c27aeb13dce13fb82af53a2bead Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 25 二月 2021 17:07:23 +0800
Subject: [PATCH] 1. 新增夜间施工查询界面 2. 新增夜间施工管理统计界面

---
 app/src/main/java/cn/flightfeather/thirdapp/module/nightwork/NightWorkRecordActivity.kt |  161 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 155 insertions(+), 6 deletions(-)

diff --git a/app/src/main/java/cn/flightfeather/thirdapp/module/nightwork/NightWorkRecordActivity.kt b/app/src/main/java/cn/flightfeather/thirdapp/module/nightwork/NightWorkRecordActivity.kt
index 3872ef9..530d7ae 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/module/nightwork/NightWorkRecordActivity.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/module/nightwork/NightWorkRecordActivity.kt
@@ -1,10 +1,25 @@
 package cn.flightfeather.thirdapp.module.nightwork
 
 import android.arch.lifecycle.ViewModelProviders
+import android.content.Intent
 import android.os.Bundle
+import android.support.v7.widget.LinearLayoutManager
+import android.support.v7.widget.RecyclerView
+import android.view.LayoutInflater
 import android.view.View
 import cn.flightfeather.thirdapp.R
+import cn.flightfeather.thirdapp.common.net.ResultCallBack
+import cn.flightfeather.thirdapp.model.bean.NightWorkFileVo
 import cn.flightfeather.thirdapp.module.base.BaseActivity
+import cn.flightfeather.thirdapp.module.common.OfficeFileManageActivity
+import cn.flightfeather.thirdapp.util.CommonUtils
+import cn.flightfeather.thirdapp.view.recyclerview.BaseCustomViewHolder
+import cn.flightfeather.thirdapp.view.recyclerview.EmptyLoadMoreView
+import cn.flightfeather.thirdapp.view.recyclerview.MySection
+import cn.flightfeather.thirdapp.view.recyclerview.RecyclerViewPanel
+import com.chad.library.adapter.base.BaseQuickAdapter
+import com.chad.library.adapter.base.BaseViewHolder
+import com.chad.library.adapter.base.loadmore.LoadMoreView
 import kotlinx.android.synthetic.main.activity_night_work.*
 import kotlinx.android.synthetic.main.layout_toolbar_2.*
 
@@ -12,10 +27,25 @@
  * @author riku
  * Date: 2020/12/24
  */
-class NightWorkRecordActivity : BaseActivity(), View.OnClickListener {
-    override fun getLayoutId(): Int = R.layout.activity_night_work
+class NightWorkRecordActivity : BaseActivity() {
+
+    inner class FileLoadMoreView : LoadMoreView() {
+        override fun getLayoutId(): Int = R.layout.item_night_work_no_more
+
+        override fun getLoadingViewId(): Int = R.id.no_more
+
+        override fun getLoadFailViewId(): Int = R.id.no_more
+
+        override fun getLoadEndViewId(): Int = R.id.no_more
+    }
 
     lateinit var viewModel: NightWorkViewModel
+
+    private lateinit var recyclerViewPanel1: RecyclerViewPanel<NightWorkFileVo>
+
+    private lateinit var recyclerViewPanel2: RecyclerViewPanel<NightWorkFileVo>
+
+    override fun getLayoutId(): Int = R.layout.activity_night_work
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -28,23 +58,142 @@
     }
 
     private fun initToolbar() {
-        img_back.setOnClickListener(this)
+        img_back.setOnClickListener { finish() }
         tv_main_title.text = "澶滈棿鏂藉伐璁稿彲"
     }
 
+    /**
+     * 鏈�鏂版湭璇绘枃浠�
+     */
     private fun initRecyclerView1() {
-        recycler_view
+        recyclerViewPanel1 = object : RecyclerViewPanel<NightWorkFileVo>(viewModel.dataLoadModel1, recycler_view, this) {
+            private val TYPE_ITEM = 1
+            private val TYPE_EMPTY = 2
+
+            override fun getItemLayoutId(): Int? = R.layout.item_night_work
+
+//            override fun getItemLayoutIdMap(): Map<Int, Int> = mapOf(
+//                    Pair(TYPE_ITEM, R.layout.item_night_work),
+//                    Pair(TYPE_EMPTY, R.layout.item_night_work_no_more)
+//            )
+
+//            override fun convertToSection(list: List<NightWorkFileVo>): MutableList<MySection<NightWorkFileVo>> {
+//                val resultList = mutableListOf<MySection<NightWorkFileVo>>()
+//                list.forEach {
+//                    if (it.id != null) {
+//                        resultList.add(MySection(it, TYPE_ITEM))
+//                    }
+//                }
+//                resultList.add(MySection(NightWorkFileVo(), TYPE_EMPTY))
+//                return resultList
+//            }
+
+            override fun onBindView(holder: BaseCustomViewHolder, item: MySection<NightWorkFileVo>?) {
+                item?.t?.let { vo ->
+//                    when (holder.itemViewType) {
+//                        TYPE_ITEM -> {
+//
+//                        }
+//                        TYPE_EMPTY -> Unit
+//                        else -> Unit
+//                    }
+                    val time = CommonUtils.getStartEndDate(vo.startDate, vo.endDate)
+                    holder.setText(R.id.txt_night_work_num, vo.num)
+                            .setText(R.id.txt_content, vo.applyContent)
+                            .setText(R.id.txt_time, time)
+                            .addOnClickListener(R.id.txt_sign)
+                }
+            }
+
+            override fun onItemClick(adapter: BaseQuickAdapter<Any?, BaseViewHolder>, view: View, position: Int, dataList: List<NightWorkFileVo>) {
+                super.onItemClick(adapter, view, position, dataList)
+                val d = dataList[position]
+                openDetail(d)
+                d.id?.let { id ->
+                    d.num?.let { num ->
+                        viewModel.signFile(id, num, object : ResultCallBack<Int> {
+                            override fun onSuccess(result: Int?) {
+                                adapter.remove(position)
+                                recyclerViewPanel2.addData(0, listOf(d))
+                            }
+
+                            override fun onFailure() {
+                            }
+                        })
+                    }
+                }
+            }
+
+            override fun onItemChildClick(adapter: BaseQuickAdapter<Any?, BaseViewHolder>, view: View, position: Int, dataList: List<NightWorkFileVo>) {
+                super.onItemChildClick(adapter, view, position, dataList)
+                val d = dataList[position]
+                when (view.id) {
+                    R.id.txt_sign -> {
+                        d.id?.let { id ->
+                            d.num?.let { num ->
+                                viewModel.signFile(id, num, object : ResultCallBack<Int> {
+                                    override fun onSuccess(result: Int?) {
+                                        adapter.remove(position)
+                                        recyclerViewPanel2.addData(0, listOf(d))
+                                    }
+
+                                    override fun onFailure() {
+                                    }
+                                })
+                            }
+                        }
+                    }
+                }
+            }
+
+            override fun getMyLayoutManager(): RecyclerView.LayoutManager = LinearLayoutManager(this@NightWorkRecordActivity, LinearLayoutManager.HORIZONTAL, false)
+
+            override fun needSwipeRefresh(): Boolean = false
+
+            override fun getLoadMoreView(): LoadMoreView? = FileLoadMoreView()
+
+            override fun getMyEmptyView(): View? = LayoutInflater.from(this@NightWorkRecordActivity).inflate(R.layout.layout_night_work_empty, null)
+
+        }.also {
+            it.init()
+            it.startRefresh()
+        }
     }
 
+    /**
+     * 鍘嗗彶鏂囦欢
+     */
     private fun initRecyclerView2() {
+        recyclerViewPanel2 = object : RecyclerViewPanel<NightWorkFileVo>(viewModel.dataLoadModel2, recycler_view_2, this) {
+            override fun getItemLayoutId(): Int? = R.layout.item_night_work_2
 
+            override fun onBindView(holder: BaseCustomViewHolder, item: MySection<NightWorkFileVo>?) {
+                item?.t?.let { vo ->
+                    val time = CommonUtils.getStartEndDate(vo.startDate, vo.endDate)
+                    holder.setText(R.id.txt_content, vo.applyContent)
+                            .setText(R.id.txt_time, time)
+                }
+            }
+
+            override fun onItemClick(adapter: BaseQuickAdapter<Any?, BaseViewHolder>, view: View, position: Int, dataList: List<NightWorkFileVo>) {
+                super.onItemClick(adapter, view, position, dataList)
+                openDetail(dataList[position])
+            }
+        }.also {
+            it.init()
+            it.startRefresh()
+        }
     }
 
     private fun initObserver() {
 
     }
 
-    override fun onClick(v: View?) {
-        TODO("Not yet implemented")
+    private fun openDetail(nightWorkFileVo: NightWorkFileVo) {
+        val intent = Intent(this, OfficeFileManageActivity::class.java)
+        intent.putExtra("filePath", nightWorkFileVo.url)
+        intent.putExtra("fileName", nightWorkFileVo.fileName)
+        intent.putExtra("isRemoteFile", nightWorkFileVo.url?.contains("http") == true)
+        startActivity(intent)
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3