瀏覽代碼

补充地图点击后页面切换逻辑;调整部分参数类型

Frankensteinly 9 月之前
父節點
當前提交
b9e919637b

+ 1 - 1
app/src/main/java/com/grkj/iscs/util/NetApi.kt

@@ -479,7 +479,7 @@ object NetApi {
     /**
      * 获取工艺分页
      */
-    fun getMachineryPage(pages: Int, size: Int, workstationId: Int, callBack: (MachineryPageRespVO?) -> Unit) {
+    fun getMachineryPage(pages: Int, size: Int, workstationId: Long, callBack: (MachineryPageRespVO?) -> Unit) {
         NetHttpManager.getInstance().doRequestNet(
             UrlConsts.MACHINERY_PAGE,
             false,

+ 15 - 2
app/src/main/java/com/grkj/iscs/view/fragment/JobManagementFragment.kt

@@ -17,12 +17,16 @@ import com.zhy.adapter.recyclerview.base.ViewHolder
 class JobManagementFragment :
     BaseMvpFragment<IJobManagementView, JobManagementPresenter, FragmentJobManagementBinding>() {
 
+    private lateinit var mMenuList: MutableList<Menu>
+
     override val viewBinding: FragmentJobManagementBinding
         get() = FragmentJobManagementBinding.inflate(layoutInflater)
 
     override fun initView() {
-        val mMenuList = mutableListOf(
-            Menu(getString(R.string.workshop), R.mipmap.workshop, WorkshopFragment()),
+        mMenuList = mutableListOf(
+            Menu(getString(R.string.workshop), R.mipmap.workshop, WorkshopFragment { pageIdx, workstationId, ticketId ->
+                changePage(pageIdx, if (pageIdx == 1) workstationId else ticketId)
+            }),
             Menu(getString(R.string.technology_sop), R.mipmap.technology, TechnologySopFragment()),
             Menu(getString(R.string.job_execution), R.mipmap.job_execution, JobExecutionFragment())
         )
@@ -46,6 +50,15 @@ class JobManagementFragment :
         }
     }
 
+    private fun changePage(pageIndex: Int, data: Any? = null) {
+        when (pageIndex) {
+            1 -> (mMenuList[1].fragment as TechnologySopFragment).refreshPage("", data as Long)
+            2 -> (mMenuList[2].fragment as JobExecutionFragment).refreshPage()
+        }
+        mBinding?.vp?.currentItem = pageIndex
+        mBinding?.rvTab?.adapter?.notifyDataSetChanged()
+    }
+
     override fun initPresenter(): JobManagementPresenter {
         return JobManagementPresenter()
     }

+ 4 - 1
app/src/main/java/com/grkj/iscs/view/fragment/TechnologySopFragment.kt

@@ -81,7 +81,7 @@ class TechnologySopFragment :
         }
     }
 
-    fun refreshPage(title: String, workstationId: Int) {
+    fun refreshPage(title: String, workstationId: Long) {
         mBinding?.tvTitle?.text = title
         presenter?.getMachineryPage(workstationId) {
             mMachineryList.clear()
@@ -89,6 +89,9 @@ class TechnologySopFragment :
                 mMachineryList.addAll(it)
             }
             mBinding?.rvTechnology?.adapter?.notifyDataSetChanged()
+            mMachineryIdx = -1
+            mSopTypeIdx = -1
+            refreshSelected()
         }
     }
 

+ 12 - 7
app/src/main/java/com/grkj/iscs/view/fragment/WorkshopFragment.kt

@@ -20,8 +20,10 @@ import java.io.IOException
 
 /**
  * 车间岗位页
+ *
+ * @param changePage: page页、workstationId、ticketId
  */
-class WorkshopFragment :
+class WorkshopFragment(val changePage: (Int, Long, Long?) -> Unit) :
     BaseMvpFragment<IWorkshopView, WorkshopPresenter, FragmentWorkshopBinding>() {
 
     private lateinit var jobStatisticList: MutableList<JobStatistics>
@@ -40,8 +42,7 @@ class WorkshopFragment :
             JobStatistics(Constants.SOP_PRE_MAINTENANCE, 0),
             JobStatistics(Constants.SOP_CHANGE_SHIFTS, 0),
             JobStatistics(Constants.SOP_CLEAN, 0),
-            JobStatistics(Constants.SOP_SWITCH_PRODUCT, 0)
-        )
+            JobStatistics(Constants.SOP_SWITCH_PRODUCT, 0))
         
         mBinding?.rvStatistics?.adapter = object : CommonAdapter<JobStatistics>(requireActivity(), R.layout.item_rv_job_management, jobStatisticList) {
             override fun convert(holder: ViewHolder, statistic: JobStatistics, position: Int) {
@@ -65,7 +66,7 @@ class WorkshopFragment :
                 itJob.count = it.count { it.ticketType == itJob.sopType.type.toString() }
             }
             mPointList.forEach { itPoint ->
-                itPoint.ticketList = it.filter { it.workstationId?.toInt() == itPoint.workstationId }.toMutableList()
+                itPoint.ticketList = it.filter { it.workstationId == itPoint.workstationId }.toMutableList()
             }
             mBinding?.rvStatistics?.adapter?.notifyDataSetChanged()
             initMap()
@@ -87,9 +88,13 @@ class WorkshopFragment :
                 markLayer = CustomMarkLayer(mBinding?.mapview, mPointList)
                 markLayer?.setMarkIsClickListener(object : CustomMarkLayer.MarkIsClickListener {
                     override fun markIsClick(index: Int, btnIndex: Int) {
-                        ToastUtils.tip(mPointList[index].name + " is selected, btnIndex is " + btnIndex)
+//                        ToastUtils.tip(mPointList[index].name + " is selected, btnIndex is " + btnIndex)
+                        if (btnIndex == -1) {
+                            changePage(1, mPointList[index].workstationId, null)
+                        } else {
+                            changePage(2, mPointList[index].workstationId, mPointList[index].ticketList[btnIndex].ticketId)
+                        }
                     }
-
                 })
                 mBinding?.mapview?.addLayer(markLayer)
                 mBinding?.mapview?.refresh()
@@ -107,5 +112,5 @@ class WorkshopFragment :
 
     data class JobStatistics(var sopType: Constants.SopType, var count: Int)
 
-    data class CustomPoint(val pos: PointF, val name: String, val workstationId: Int, var ticketList: MutableList<WorkstationTicketListRespVO>)
+    data class CustomPoint(val pos: PointF, val name: String, val workstationId: Long, var ticketList: MutableList<WorkstationTicketListRespVO>)
 }

+ 1 - 1
app/src/main/java/com/grkj/iscs/view/presenter/TechnologySopPresenter.kt

@@ -8,7 +8,7 @@ import com.grkj.iscs.view.iview.ITechnologySopView
 
 class TechnologySopPresenter : BasePresenter<ITechnologySopView>() {
 
-    fun getMachineryPage(workstationId: Int, callBack: (MachineryPageRespVO?) -> Unit) {
+    fun getMachineryPage(workstationId: Long, callBack: (MachineryPageRespVO?) -> Unit) {
         NetApi.getMachineryPage(0, 10, workstationId) {
             Executor.runOnMain {
                 callBack(it)