Ver código fonte

作业票详情页并迁移部分逻辑

Frankensteinly 11 meses atrás
pai
commit
35315f7956

+ 3 - 1
app/src/main/AndroidManifest.xml

@@ -8,7 +8,6 @@
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
     <application
@@ -23,6 +22,9 @@
         android:supportsRtl="true"
         android:theme="@style/Theme.ISCS"
         tools:targetApi="31">
+        <activity
+            android:name=".activity.TicketDetailActivity"
+            android:exported="false" />
         <activity
             android:name=".activity.TicketListActivity"
             android:exported="false" />

+ 35 - 0
app/src/main/java/com/grkj/iscs/activity/TicketDetailActivity.kt

@@ -0,0 +1,35 @@
+package com.grkj.iscs.activity
+
+import com.grkj.iscs.base.BaseMvpActivity
+import com.grkj.iscs.databinding.ActivityTicketDetailBinding
+import com.grkj.iscs.iview.ITicketDetailView
+import com.grkj.iscs.presenter.TicketDetailPresenter
+
+/**
+ * 作业票详情页
+ */
+class TicketDetailActivity :
+    BaseMvpActivity<ITicketDetailView, TicketDetailPresenter, ActivityTicketDetailBinding>() {
+
+    override val viewBinding: ActivityTicketDetailBinding
+        get() = ActivityTicketDetailBinding.inflate(layoutInflater)
+
+    override fun initView() {
+        val ticketId = intent.getLongExtra("ticketId", -1)
+        if (ticketId == -1L) {
+            return
+        }
+
+        presenter?.getTicketDetail(ticketId) {
+            mBinding?.tvDetail?.text = it.toString()
+        }
+
+        mBinding?.btnAction?.setOnClickListener {
+
+        }
+    }
+
+    override fun initPresenter(): TicketDetailPresenter {
+        return TicketDetailPresenter()
+    }
+}

+ 7 - 9
app/src/main/java/com/grkj/iscs/fragment/TicketListFragment.kt

@@ -1,6 +1,8 @@
 package com.grkj.iscs.fragment
 
+import android.content.Intent
 import com.grkj.iscs.R
+import com.grkj.iscs.activity.TicketDetailActivity
 import com.grkj.iscs.base.BaseMvpFragment
 import com.grkj.iscs.databinding.FragmentTicketListBinding
 import com.grkj.iscs.iview.ITicketListView
@@ -9,6 +11,7 @@ import com.grkj.iscs.model.Constants.TICKET_STATUS_NOT_STARTED
 import com.grkj.iscs.model.Constants.TICKET_STATUS_PROCESSING
 import com.grkj.iscs.model.Constants.TICKET_STATUS_READY_TO_LOCK
 import com.grkj.iscs.model.Constants.TICKET_STATUS_READY_TO_UNLOCK
+import com.grkj.iscs.model.Constants.TICKET_STATUS_UNLOCKED
 import com.grkj.iscs.model.vo.ticket.TicketPageRespVO
 import com.grkj.iscs.presenter.TicketListPresenter
 import com.zhy.adapter.recyclerview.CommonAdapter
@@ -44,19 +47,14 @@ class TicketListFragment(var type: Int) :
                     TICKET_STATUS_READY_TO_LOCK -> resources.getString(R.string.ready_to_lock)
                     TICKET_STATUS_PROCESSING -> resources.getString(R.string.on_process)
                     TICKET_STATUS_READY_TO_UNLOCK -> resources.getString(R.string.ready_to_unlock)
+                    TICKET_STATUS_UNLOCKED -> resources.getString(R.string.unlocked)
                     TICKET_STATUS_FINISHED -> resources.getString(R.string.finished)
                     else -> ""
                 })
                 holder.setOnClickListener(R.id.tv_action) {
-                    when(record?.ticketStatus) {
-                        // TODO 数量待修改
-                        TICKET_STATUS_NOT_STARTED -> presenter?.startTicket(record.pointCount)
-                        TICKET_STATUS_READY_TO_LOCK -> resources.getString(R.string.ready_to_lock)
-                        TICKET_STATUS_PROCESSING -> resources.getString(R.string.on_process)
-                        TICKET_STATUS_READY_TO_UNLOCK -> resources.getString(R.string.ready_to_unlock)
-                        TICKET_STATUS_FINISHED -> resources.getString(R.string.finished)
-                        else -> ""
-                    }
+                    startActivity(Intent(activity, TicketDetailActivity::class.java).apply {
+                        putExtra("ticketId", record?.ticketId)
+                    })
                 }
             }
         }

+ 5 - 0
app/src/main/java/com/grkj/iscs/iview/ITicketDetailView.kt

@@ -0,0 +1,5 @@
+package com.grkj.iscs.iview
+
+import com.grkj.iscs.base.IView
+
+interface ITicketDetailView : IView {}

+ 2 - 1
app/src/main/java/com/grkj/iscs/model/Constants.kt

@@ -15,5 +15,6 @@ object Constants {
     const val TICKET_STATUS_READY_TO_LOCK = "1"       // 待上锁
     const val TICKET_STATUS_PROCESSING = "2"          // 进行中
     const val TICKET_STATUS_READY_TO_UNLOCK = "3"     // 待解锁
-    const val TICKET_STATUS_FINISHED = "4"            // 已结束
+    const val TICKET_STATUS_UNLOCKED = "4"            // 已解锁
+    const val TICKET_STATUS_FINISHED = "5"            // 已结束
 }

+ 45 - 0
app/src/main/java/com/grkj/iscs/presenter/TicketDetailPresenter.kt

@@ -0,0 +1,45 @@
+package com.grkj.iscs.presenter
+
+import com.grkj.iscs.BusinessManager
+import com.grkj.iscs.R
+import com.grkj.iscs.base.BasePresenter
+import com.grkj.iscs.iview.ITicketDetailView
+import com.grkj.iscs.modbus.ModBusController
+import com.grkj.iscs.model.vo.ticket.TicketDetailRespVO
+import com.grkj.iscs.util.NetApi
+import com.grkj.iscs.util.ToastUtils
+
+class TicketDetailPresenter : BasePresenter<ITicketDetailView>() {
+    /**
+     * 获取作业票详细信息
+     */
+    fun getTicketDetail(ticketId: Long?, callBack: (TicketDetailRespVO?) -> Unit) {
+        if (ticketId == null) {
+            ToastUtils.tip(mContext!!.resources.getString(R.string.ticket_id_is_null))
+            return
+        }
+        NetApi.getTicketDetail(ticketId) {
+            callBack.invoke(it)
+        }
+    }
+
+    /**
+     * @param needLockCount 需要的锁具的数量(可能在别的机柜取过)
+     */
+    fun startTicket(needLockCount: Int) {
+        BusinessManager.checkEquipCount(needLockCount) { keyPair, lockMap ->
+            // TODO 下发工作票,上传钥匙信息更新作业票
+//            keyPair?.let {
+//                ModBusController.controlKeyBuckle(true, keyPair.second.first, keyPair.first.toInt()) {
+//
+//                }
+//            }
+            lockMap.forEach { dockAddr, lockList ->
+                // TODO 先上传锁具信息更新作业票,再下发锁具
+                ModBusController.controlLockBuckle(true, dockAddr.toInt(), lockList.map { it.idx }.toMutableList()) {
+
+                }
+            }
+        }
+    }
+}

+ 0 - 33
app/src/main/java/com/grkj/iscs/presenter/TicketListPresenter.kt

@@ -41,37 +41,4 @@ class TicketListPresenter : BasePresenter<ITicketListView>() {
     fun getTicketTypeName(type: String?): String? {
         return mTicketTypeList.find { it.dictValue == type }?.dictLabel
     }
-
-    /**
-     * 获取作业票详细信息
-     */
-    fun getTicketDetail(ticketId: Long?) {
-        if (ticketId == null) {
-            ToastUtils.tip(mContext!!.resources.getString(R.string.ticket_id_is_null))
-            return
-        }
-        NetApi.getTicketDetail(ticketId) {
-            
-        }
-    }
-
-    /**
-     * @param needLockCount 需要的锁具的数量(可能在别的机柜取过)
-     */
-    fun startTicket(needLockCount: Int) {
-        BusinessManager.checkEquipCount(needLockCount) { keyPair, lockMap ->
-            // TODO 下发工作票,上传钥匙信息更新作业票
-//            keyPair?.let {
-//                ModBusController.controlKeyBuckle(true, keyPair.second.first, keyPair.first.toInt()) {
-//
-//                }
-//            }
-            lockMap.forEach { dockAddr, lockList ->
-                // TODO 先上传锁具信息更新作业票,再下发锁具
-                ModBusController.controlLockBuckle(true, dockAddr.toInt(), lockList.map { it.idx }.toMutableList()) {
-
-                }
-            }
-        }
-    }
 }

+ 21 - 0
app/src/main/res/layout/activity_ticket_detail.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/main"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".activity.TicketDetailActivity">
+
+    <TextView
+        android:id="@+id/tv_detail"
+        style="@style/CommonTextView"
+        android:textColor="@color/main_color" />
+
+    <Button
+        android:id="@+id/btn_action"
+        style="@style/CommonBtn"
+        android:text="操作" />
+
+</LinearLayout>

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -53,6 +53,7 @@
     <string name="ready_to_lock">待上锁</string>
     <string name="on_process">进行中</string>
     <string name="ready_to_unlock">待解锁</string>
+    <string name="unlocked">已解锁</string>
     <string name="finished">已结束</string>
     <string name="key_return_confirm_tip">工作票尚未完成,是否确认归还钥匙?</string>
     <string name="cancel">取消</string>