ソースを参照

修复筛选bug;完善工作票组成

Frankensteinly 1 年間 前
コミット
2ee975e3d0

+ 6 - 2
app/src/main/java/com/grkj/iscs/activity/PresentationLoginActivity.kt

@@ -55,11 +55,15 @@ class PresentationLoginActivity : BaseActivity<ActivityPresentationLoginBinding>
                                         println("卡片RFID : $rfid")
                                         if (PresentationManager.cardList.any { it.rfid == rfid && it.isLocker}) {
                                             ToastUtils.tip("登录成功,欢迎 $rfid")
-                                            startActivity(Intent(this, PresentationActivity::class.java))
+                                            val intent = Intent(this, PresentationActivity::class.java)
+                                            intent.putExtra("card", rfid)
+                                            startActivity(intent)
                                             return@readPortalCaseCardRfid
                                         } else if (PresentationManager.cardList.any { it.rfid == rfid && !it.isLocker}) {
                                             ToastUtils.tip("登录成功,欢迎 $rfid")
-                                            startActivity(Intent(this, LockerTogetherActivity::class.java))
+                                            val intent = Intent(this, LockerTogetherActivity::class.java)
+                                            intent.putExtra("card", rfid)
+                                            startActivity(intent)
                                             return@readPortalCaseCardRfid
                                         }
                                         ToastUtils.tip("登录失败,$rfid 没有权限")

+ 16 - 16
app/src/main/java/com/grkj/iscs/model/WorkTicketBean.kt

@@ -4,63 +4,63 @@ class WorkTicketBean {
     /**
      * 权限卡号
      */
-    private val cardNo: String? = null
+    var cardNo: String? = null
     /**
      * 用户密码
      */
-    private val password: String? = null
+    var password: String? = null
     /**
      * 工作有效期(小时)
      */
-    private val effectiveTime: Int? = null
+    var effectiveTime: Int? = null
     /**
      * 工作票数组
      */
-    private val data: MutableList<DataDTO>? = null
+    var data: MutableList<DataDTO>? = null
     /**
      * 挂锁数组
      */
-    private val lockList: MutableList<LockListDTO>? = null
+    var lockList: MutableList<LockListDTO>? = null
 
     class DataDTO {
         /**
          * 工作票号
          */
-        private val taskCode: String? = null
+        var taskCode: String? = null
         /**
          * 工作票ID
          */
-        private val taskId: String? = null
+        var taskId: String? = null
         /**
          * 工作票序号
          */
-        private val codeId: Int? = null
+        var codeId: Int? = null
         /**
          * 工作票下挂任务列表
          */
-        private val dataList: MutableList<DataListDTO>? = null
+        var dataList: MutableList<DataListDTO>? = null
 
         class DataListDTO {
             /**
              * 任务ID
              */
-            private val dataId: Int? = null
+            var dataId: Int? = null
             /**
              * 工作点位RFID号
              */
-            private val equipRfidNo: String? = null
+            var equipRfidNo: String? = null
             /**
              * 锁RFID号
              */
-            private val infoRfidNo: String? = null
+            var infoRfidNo: String? = null
             /**
              * 任务目标 0:挂锁 1:解锁
              */
-            private val target: Int? = null
+            var target: Int? = null
             /**
              * 前序任务ID
              */
-            private val prevId: Int? = null
+            var prevId: Int? = null
         }
     }
 
@@ -68,10 +68,10 @@ class WorkTicketBean {
         /**
          * 挂锁ID
          */
-        private val lockId: String? = null
+        var lockId: String? = null
         /**
          * 挂锁RFID
          */
-        private val rfid: String? = null
+        var rfid: String? = null
     }
 }

+ 27 - 3
app/src/main/java/com/grkj/iscs/presentation/PresentationActivity.kt

@@ -10,6 +10,7 @@ import com.grkj.iscs.databinding.ActivityPresentationBinding
 import com.grkj.iscs.extentions.toHexStrings
 import com.grkj.iscs.modbus.ModBusController
 import com.grkj.iscs.model.DeviceConst
+import com.grkj.iscs.model.WorkTicketBean
 import com.grkj.iscs.util.ToastUtils
 import com.grkj.iscs.util.log.LogUtil
 import com.grkj.iscs.widget.SelectableInput
@@ -23,10 +24,13 @@ import java.util.stream.Collectors
 class PresentationActivity :
     BaseMvpActivity<IPresentationView, PresentationPresenter, ActivityPresentationBinding>() {
 
+    private var cardRfid: String? = null
+
     override val viewBinding: ActivityPresentationBinding
         get() = ActivityPresentationBinding.inflate(layoutInflater)
 
     override fun initView() {
+        cardRfid = intent.getStringExtra("card")
 
         mBinding?.siSop?.mOptionList = PresentationManager.mSopList.stream().map { it.sop }.collect(Collectors.toList())
         mBinding?.siSop?.setOnSpinnerSelectListener(object : SelectableInput.OnSpinnerSelectListener {
@@ -85,8 +89,9 @@ class PresentationActivity :
     }
 
     private fun confirm() {
+        createWorkTicket()
         // 蓝牙钥匙
-        val keyList = ModBusController.getKeyByDockType(DeviceConst.DOCK_TYPE_KEY)
+        val keyList = ModBusController.getKeyByDockType(DeviceConst.DOCK_TYPE_PORTABLE)
         if (keyList.isNullOrEmpty()) {
             ToastUtils.tip("没有找到钥匙")
             return
@@ -112,15 +117,34 @@ class PresentationActivity :
             return
         }
 
-        val lockIdxList = lockList.filter { it.rfid == rfid }.map { it.idx } as MutableList
+        val lockIdxList = lockList.map { it.idx } as MutableList
         ModBusController.controlLockBuckle(true, dockList[0].addr.toInt() - 1, lockIdxList) { res ->
             LogUtil.i("confirm开锁卡扣 : ${res.toHexStrings()}")
         }
     }
 
 
-    fun createWorkTicket() {
+    /**
+     * 创建工作票
+     */
+    private fun createWorkTicket() {
+        val ticket = WorkTicketBean()
+        ticket.cardNo = cardRfid
+        ticket.effectiveTime = 24
+
+        val dataDTO = WorkTicketBean.DataDTO()
+        dataDTO.taskCode = SimpleDateFormat("yyyyMMddHHmm").format(Date(System.currentTimeMillis()))
+        dataDTO.taskId = SimpleDateFormat("yyyyMMddHHmmss").format(Date(System.currentTimeMillis()))
+        dataDTO.codeId = 1
+        val dataListDTO1 = WorkTicketBean.DataDTO.DataListDTO()
+        dataListDTO1.dataId = 1
+        ticket.data = mutableListOf(dataDTO)
+
+
+        val lockListDTO = WorkTicketBean.LockListDTO()
+        ticket.lockList = mutableListOf(lockListDTO)
 
+        PresentationManager.workTicketList.add(ticket)
     }
 
 

+ 2 - 1
app/src/main/java/com/grkj/iscs/presentation/PresentationBean.kt

@@ -1,6 +1,7 @@
 package com.grkj.iscs.presentation
 
 data class PresentationBean(
+    var sopId: Long? = null,
     // 车间
     var workshop: String? = null,
     // 产线
@@ -14,5 +15,5 @@ data class PresentationBean(
     // 作业类型
     var type: String? = null,
     // 隔离点
-    var pointList: MutableList<String> = mutableListOf()
+    var pointList: MutableList<PresentationManager.PPointBean> = mutableListOf()
 )

+ 9 - 4
app/src/main/java/com/grkj/iscs/presentation/PresentationManager.kt

@@ -10,22 +10,24 @@ object PresentationManager {
 
     val mSopList = mutableListOf(
         PresentationBean(
+            1,
             "士力架车间",
             "打包线1",
             "士力架包装车间-打包线1-保养",
             "士力架包装车间-打包线1-保养",
             "SOP001",
             "保养",
-            mutableListOf("E-1", "E-2")
+            mutableListOf(PPointBean("E-1", "1DA0C66D031080"), PPointBean("E-2", "1DCAD26D031080"))
         ),
         PresentationBean(
+            2,
             "德芙车间",
             "打包线2",
             "德芙包装车间-打包线2-维护",
             "德芙包装车间-打包线2-维护",
             "SOP002",
             "维护",
-            mutableListOf("E-2", "E-3")
+            mutableListOf(PPointBean("E-3", "1DA0C66D031080"), PPointBean("E-4", "1DCAD26D031080"))
         )
     )
 
@@ -41,11 +43,14 @@ object PresentationManager {
         PLockerTogetherBean("共锁人2", false, null)
     )
 
+    var workTicketList = mutableListOf<WorkTicketBean>()
 
     // 卡片信息
     data class PCardInfoBean(val rfid: String, val isLocker: Boolean)
     // 共锁人
     data class PLockerTogetherBean(var name: String? = null, var isChecked: Boolean = false, var rfid: String?)
-
-    var workTicketBean: WorkTicketBean? = WorkTicketBean()
+    // 隔离点位
+    data class PPointBean(var name: String? = null, var rfid: String? = null)
+    // 服务端工作票(完整)
+    data class ServerTicket(var ticketId: Long? = null, var sopId: Long? = null)
 }