Bladeren bron

接入主界面数据接口并适配界面

Frankensteinly 8 maanden geleden
bovenliggende
commit
90df9f790b

+ 5 - 0
app/src/main/java/com/grkj/iscs_mc/model/UrlConsts.kt

@@ -234,4 +234,9 @@ object UrlConsts {
      * 查询物资使用说明
      */
     const val MATERIAL_INSTRUCTION_LIST = "/iscs/hardware/material-api/getInstructionsList"
+
+    /**
+     * 主界面数据
+     */
+    const val HOME_PAGE_DATA = "/iscs/hardware/material-api/getCabinetHomePage"
 }

+ 29 - 0
app/src/main/java/com/grkj/iscs_mc/model/vo/home/HomePageDataRespVO.kt

@@ -0,0 +1,29 @@
+package com.grkj.iscs_mc.model.vo.home
+
+data class HomePageDataRespVO(
+    /**
+     * 物资取还数量
+     */
+    val rarNumber: Int?,
+
+    /**
+     * 物资检查数量
+     */
+    val checkNumber: Int?,
+
+    val list: List<MaterialsHomeVO>?
+) {
+    data class MaterialsHomeVO(
+        val materialsTypeId: Long?,
+
+        val materialsTypeName: String?,
+
+        val materialsTypeIcon: String?,
+
+        val materialsTypePicture: String?,
+
+        val allNumber: Int?,
+
+        val borrowableNumber: Int?
+    )
+}

+ 19 - 0
app/src/main/java/com/grkj/iscs_mc/util/NetApi.kt

@@ -5,6 +5,7 @@ import com.grkj.iscs_mc.model.Token
 import com.grkj.iscs_mc.model.UrlConsts
 import com.grkj.iscs_mc.model.vo.card.CardInfoRespVO
 import com.grkj.iscs_mc.model.vo.dept.DeptListRespVO
+import com.grkj.iscs_mc.model.vo.home.HomePageDataRespVO
 import com.grkj.iscs_mc.model.vo.key.KeyInfoRespVO
 import com.grkj.iscs_mc.model.vo.lock.LockInfoRespVO
 import com.grkj.iscs_mc.model.vo.machinery.MachineryDetailRespVO
@@ -824,4 +825,22 @@ object NetApi {
             }, isGet = true, isAuth = true
         )
     }
+
+    /**
+     * 主界面数据
+     */
+    fun getHomePageData(cabinetCode: String, callBack: (HomePageDataRespVO?) -> Unit) {
+        NetHttpManager.getInstance().doRequestNet(
+            UrlConsts.HOME_PAGE_DATA,
+            false,
+            mapOf(
+                "cabinetCode" to cabinetCode
+            ),
+            { res, _, _ ->
+                res?.let {
+                    callBack(getRefBean(it))
+                }
+            }, isGet = true, isAuth = true
+        )
+    }
 }

+ 24 - 0
app/src/main/java/com/grkj/iscs_mc/view/fragment/MaterialHomeFragment.kt

@@ -1,10 +1,12 @@
 package com.grkj.iscs_mc.view.fragment
 
+import android.view.View
 import com.grkj.iscs_mc.databinding.FragmentMaterialHomeBinding
 import com.grkj.iscs_mc.extentions.navigateTo
 import com.grkj.iscs_mc.view.base.BaseMvpFragment
 import com.grkj.iscs_mc.view.iview.IMaterialHomeView
 import com.grkj.iscs_mc.view.presenter.MaterialHomePresenter
+import com.grkj.iscs_mc.view.widget.ExpandableTabLayout
 
 /**
  * 物资管理 - 首页
@@ -31,6 +33,28 @@ class MaterialHomeFragment :
         mBinding?.rlModuleReplacement?.setOnClickListener {
             navigateTo(MaterialHomeFragmentDirections.actionHomeFragmentToReplacementFragment())
         }
+
+        presenter?.getHomeData { itData ->
+            itData?.rarNumber?.let {
+                mBinding?.tvFetchReturnNum?.text = it.toString()
+                mBinding?.rlFetchReturnNum?.visibility = View.VISIBLE
+            } ?: let {
+                mBinding?.rlFetchReturnNum?.visibility = View.GONE
+            }
+
+            itData?.checkNumber?.let {
+                mBinding?.tvInspectionNum?.text = it.toString()
+                mBinding?.rlInspectionNum?.visibility = View.VISIBLE
+            } ?: let {
+                mBinding?.rlInspectionNum?.visibility = View.GONE
+            }
+
+            val list = mutableListOf<ExpandableTabLayout.ItemData>()
+            itData?.list?.forEach {
+                list.add(ExpandableTabLayout.ItemData("${it.materialsTypeName}(${it.borrowableNumber}/${it.allNumber})", iconUrl = it.materialsTypeIcon))
+            }
+            mBinding?.etlType?.setData(list)
+        }
     }
 
     override fun initPresenter(): MaterialHomePresenter {

+ 12 - 0
app/src/main/java/com/grkj/iscs_mc/view/presenter/MaterialHomePresenter.kt

@@ -1,7 +1,19 @@
 package com.grkj.iscs_mc.view.presenter
 
+import com.grkj.iscs_mc.extentions.serialNo
+import com.grkj.iscs_mc.model.vo.home.HomePageDataRespVO
+import com.grkj.iscs_mc.util.Executor
+import com.grkj.iscs_mc.util.NetApi
 import com.grkj.iscs_mc.view.base.BasePresenter
 import com.grkj.iscs_mc.view.iview.IMaterialHomeView
 
 class MaterialHomePresenter : BasePresenter<IMaterialHomeView>() {
+
+    fun getHomeData(callBack: (HomePageDataRespVO?) -> Unit) {
+        NetApi.getHomePageData(mContext!!.serialNo()) {
+            Executor.runOnMain {
+                callBack(it)
+            }
+        }
+    }
 }

+ 5 - 1
app/src/main/java/com/grkj/iscs_mc/view/widget/ExpandableTabLayout.kt

@@ -10,6 +10,7 @@ import android.widget.RelativeLayout
 import androidx.appcompat.content.res.AppCompatResources
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
+import com.bumptech.glide.Glide
 import com.grkj.iscs_mc.R
 import com.grkj.iscs_mc.databinding.LayoutExpandableTabLayoutBinding
 import com.grkj.iscs_mc.util.ToastUtils
@@ -73,6 +74,9 @@ class ExpandableTabLayout(private val ctx: Context, attrs: AttributeSet) :
                     data.icon?.let {
                         holder.getView<ImageView>(R.id.iv_icon).setImageResource(it)
                     }
+                    data.iconUrl?.let {
+                        Glide.with(this@ExpandableTabLayout).load(it).into(holder.getView(R.id.iv_icon))
+                    }
                     data.title?.let {
                         holder.setText(R.id.tv_name, it)
                     }
@@ -133,5 +137,5 @@ class ExpandableTabLayout(private val ctx: Context, attrs: AttributeSet) :
         fun onSelect(position: Int)
     }
 
-    data class ItemData(val title: String?, val icon: Int?)
+    data class ItemData(val title: String?, val icon: Int? = null, val iconUrl: String? = null)
 }

+ 8 - 0
app/src/main/res/drawable/home_page_num_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <corners android:radius="@dimen/common_radius_big" />
+    <stroke
+        android:width="@dimen/divider_line_width"
+        android:color="@color/white" />
+</shape>

+ 29 - 2
app/src/main/res/layout/fragment_material_home.xml

@@ -32,6 +32,20 @@
             app:layout_constraintRight_toLeftOf="@id/rl_module_instruction"
             app:layout_constraintTop_toTopOf="parent">
 
+            <RelativeLayout
+                android:id="@+id/rl_fetch_return_num"
+                android:layout_width="20dp"
+                android:layout_height="20dp"
+                android:layout_alignParentRight="true"
+                android:background="@drawable/home_page_num_bg"
+                android:visibility="gone">
+
+                <TextView
+                    android:id="@+id/tv_fetch_return_num"
+                    style="@style/CommonTextView"
+                    android:layout_centerInParent="true" />
+            </RelativeLayout>
+
             <ImageView
                 android:layout_width="@dimen/home_module_icon_size"
                 android:layout_height="@dimen/home_module_icon_size"
@@ -102,6 +116,20 @@
             app:layout_constraintRight_toLeftOf="@id/rl_module_replacement"
             app:layout_constraintTop_toBottomOf="@id/rl_module_fetch_return">
 
+            <RelativeLayout
+                android:id="@+id/rl_inspection_num"
+                android:layout_width="20dp"
+                android:layout_height="20dp"
+                android:layout_alignParentRight="true"
+                android:background="@drawable/home_page_num_bg"
+                android:visibility="gone">
+
+                <TextView
+                    android:id="@+id/tv_inspection_num"
+                    style="@style/CommonTextView"
+                    android:layout_centerInParent="true" />
+            </RelativeLayout>
+
             <ImageView
                 android:layout_width="@dimen/home_module_icon_size"
                 android:layout_height="@dimen/home_module_icon_size"
@@ -168,6 +196,5 @@
         android:layout_height="@dimen/expandable_tab_collapse_height"
         android:layout_alignParentBottom="true"
         app:expand_direction="upwards"
-        app:interactive="true"
-        app:expand_title="@string/home_status_bar_title"/>
+        app:expand_title="@string/home_status_bar_title" />
 </RelativeLayout>