Просмотр исходного кода

refactor(更新)
- 点位管理的更新增加

周文健 4 месяцев назад
Родитель
Сommit
cc7153599c
23 измененных файлов с 1032 добавлено и 34 удалено
  1. 22 7
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddPointDialog.kt
  2. 158 0
      app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdatePointDialog.kt
  3. 60 3
      app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/PointMangeFragment.kt
  4. 16 3
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/data_manage/PointManageViewModel.kt
  5. 1 1
      app/src/main/res/layout-land/activity_login.xml
  6. 163 0
      app/src/main/res/layout-land/fragment_point_manage.xml
  7. 49 0
      app/src/main/res/layout-land/item_point_manage_point.xml
  8. 236 0
      app/src/main/res/layout/dialog_add_point.xml
  9. 1 1
      app/src/main/res/layout/dialog_filter_point.xml
  10. 236 0
      app/src/main/res/layout/dialog_update_point.xml
  11. 5 0
      app/src/main/res/values-en/strings.xml
  12. 5 0
      app/src/main/res/values-zh/strings.xml
  13. 5 0
      app/src/main/res/values/strings.xml
  14. 14 2
      data/src/main/java/com/grkj/data/dao/IsolationPointDao.kt
  15. 8 2
      data/src/main/java/com/grkj/data/dao/JobTicketDao.kt
  16. 7 0
      data/src/main/java/com/grkj/data/dao/RfidTokenDao.kt
  17. 1 1
      data/src/main/java/com/grkj/data/model/vo/AddPointManageVo.kt
  18. 3 0
      data/src/main/java/com/grkj/data/model/vo/PointManageVo.kt
  19. 13 0
      data/src/main/java/com/grkj/data/model/vo/UpdatePointManageVo.kt
  20. 7 1
      data/src/main/java/com/grkj/data/repository/IIsolationPointRepository.kt
  21. 4 2
      data/src/main/java/com/grkj/data/repository/IRfidTokenRepository.kt
  22. 16 7
      data/src/main/java/com/grkj/data/repository/impl/IsolationPointRepository.kt
  23. 2 4
      data/src/main/java/com/grkj/data/repository/impl/RfidTokenRepository.kt

+ 22 - 7
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddPointDialog.kt

@@ -7,6 +7,7 @@ import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogFilterPointBinding
 import com.grkj.iscs.features.main.dialog.TextDropDownDialog
 import com.grkj.data.enums.IsolationPointPowerTypeEnum
+import com.grkj.iscs.databinding.DialogAddPointBinding
 import com.grkj.ui_base.utils.extension.tipDialog
 import com.kongzue.dialogx.dialogs.PopTip
 import razerdp.basepopup.BasePopupWindow
@@ -18,12 +19,14 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
     private var onConfirm: (AddPointManageVo) -> Unit = {}
     private var textDropDownDialog: TextDropDownDialog
     private var workstationData: List<TextDropDownDialog.TextDropDownEntity> = mutableListOf()
+    private var rfidTokenData: List<TextDropDownDialog.TextDropDownEntity> = mutableListOf()
     private var selectPowerType: TextDropDownDialog.TextDropDownEntity? = null
     private var selectWorkstation: TextDropDownDialog.TextDropDownEntity? = null
-    private lateinit var binding: DialogFilterPointBinding
+    private var selectRfidToken: TextDropDownDialog.TextDropDownEntity? = null
+    private lateinit var binding: DialogAddPointBinding
 
     init {
-        setContentView(R.layout.dialog_filter_point)
+        setContentView(R.layout.dialog_add_point)
         textDropDownDialog = TextDropDownDialog(context)
         textDropDownDialog.setWidthAsAnchorView(true)
 
@@ -31,7 +34,7 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
 
     override fun onViewCreated(contentView: View) {
         super.onViewCreated(contentView)
-        binding = DialogFilterPointBinding.bind(contentView)
+        binding = DialogAddPointBinding.bind(contentView)
         binding.powerTypeTv.setOnClickListener {
             setPointPowerType()
             textDropDownDialog.showPopupWindow(binding.powerTypeTv)
@@ -44,6 +47,14 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
             }
             textDropDownDialog.showPopupWindow(binding.workstationTv)
         }
+        binding.rfidTagTv.setOnClickListener {
+            textDropDownDialog.setData(rfidTokenData)
+            textDropDownDialog.setOnItemSelectListener {
+                selectRfidToken = it
+                binding.rfidTagTv.text = it.getShowText()
+            }
+            textDropDownDialog.showPopupWindow(binding.rfidTagTv)
+        }
         binding.closeIv.setOnClickListener { dismiss() }
         binding.confirm.setOnClickListener {
             if (checkData()) {
@@ -52,7 +63,7 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
                     binding.functionEt.text.toString(),
                     selectPowerType?.getTag(),
                     selectWorkstation?.getId(),
-                    binding.rfidTagEt.text.toString()
+                    selectRfidToken?.getId()
                 )
                 onConfirm(addData)
                 dismiss()
@@ -60,7 +71,7 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
                 binding.functionEt.setText("")
                 binding.powerTypeTv.text = ""
                 binding.workstationTv.text = ""
-                binding.rfidTagEt.setText("")
+                binding.rfidTagTv.text = ""
                 selectPowerType = null
                 selectWorkstation = null
             }
@@ -74,6 +85,10 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
         this.workstationData = workstationData
     }
 
+    fun setRfidTokenData(rfidTokenData: List<TextDropDownDialog.TextDropDownEntity>) {
+        this.rfidTokenData = rfidTokenData
+    }
+
     private fun setPointPowerType() {
         textDropDownDialog.setData(
             IsolationPointPowerTypeEnum.values().map {
@@ -105,8 +120,8 @@ class AddPointDialog(context: Context) : BasePopupWindow(context) {
             PopTip.build().tipDialog(R.string.please_select_workstation)
             return false
         }
-        if (binding.rfidTagEt.text.trim().toString().isEmpty()) {
-            PopTip.build().tipDialog(R.string.please_input_rfid_tag)
+        if (selectRfidToken == null) {
+            PopTip.build().tipDialog(R.string.please_select_rfid_tag)
             return false
         }
         return true

+ 158 - 0
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdatePointDialog.kt

@@ -0,0 +1,158 @@
+package com.grkj.iscs.features.main.dialog.data_manage
+
+import android.content.Context
+import android.view.View
+import com.grkj.iscs.R
+import com.grkj.iscs.features.main.dialog.TextDropDownDialog
+import com.grkj.data.enums.IsolationPointPowerTypeEnum
+import com.grkj.data.model.vo.PointManageVo
+import com.grkj.data.model.vo.UpdatePointManageVo
+import com.grkj.iscs.databinding.DialogUpdatePointBinding
+import com.grkj.ui_base.utils.extension.tipDialog
+import com.kongzue.dialogx.dialogs.PopTip
+import razerdp.basepopup.BasePopupWindow
+
+/**
+ * 修改隔离点
+ */
+class UpdatePointDialog(context: Context) : BasePopupWindow(context) {
+    private var onConfirm: (UpdatePointManageVo) -> Unit = {}
+    private var pointId: Long = 0
+    private var textDropDownDialog: TextDropDownDialog
+    private var workstationData: List<TextDropDownDialog.TextDropDownEntity> = mutableListOf()
+    private var rfidTokenData: List<TextDropDownDialog.TextDropDownEntity> = mutableListOf()
+    private var selectPowerType: TextDropDownDialog.TextDropDownEntity? = null
+    private var selectWorkstation: TextDropDownDialog.TextDropDownEntity? = null
+    private var selectRfidToken: TextDropDownDialog.TextDropDownEntity? = null
+    private val powerTypeData: List<TextDropDownDialog.TextDropDownEntity> by lazy {
+        IsolationPointPowerTypeEnum.values().map {
+            TextDropDownDialog.SimpleTextDropDownEntity(
+                dataTag = it.name,
+                dataText = it.description
+            )
+        }
+    }
+    private lateinit var binding: DialogUpdatePointBinding
+
+    init {
+        setContentView(R.layout.dialog_update_point)
+        textDropDownDialog = TextDropDownDialog(context)
+        textDropDownDialog.setWidthAsAnchorView(true)
+
+    }
+
+    override fun onViewCreated(contentView: View) {
+        super.onViewCreated(contentView)
+        binding = DialogUpdatePointBinding.bind(contentView)
+        binding.powerTypeTv.setOnClickListener {
+            setPointPowerType()
+            textDropDownDialog.showPopupWindow(binding.powerTypeTv)
+        }
+        binding.workstationTv.setOnClickListener {
+            textDropDownDialog.setData(workstationData)
+            textDropDownDialog.setOnItemSelectListener {
+                selectWorkstation = it
+                binding.workstationTv.text = it.getShowText()
+            }
+            textDropDownDialog.showPopupWindow(binding.workstationTv)
+        }
+        binding.rfidTagTv.setOnClickListener {
+            textDropDownDialog.setData(rfidTokenData)
+            textDropDownDialog.setOnItemSelectListener {
+                selectRfidToken = it
+                binding.rfidTagTv.text = it.getShowText()
+            }
+            textDropDownDialog.showPopupWindow(binding.rfidTagTv)
+        }
+        binding.closeIv.setOnClickListener { dismiss() }
+        binding.confirm.setOnClickListener {
+            if (checkData()) {
+                val updateData = UpdatePointManageVo(
+                    pointId,
+                    binding.pointNameTv.text.toString(),
+                    binding.functionEt.text.toString(),
+                    selectPowerType?.getTag(),
+                    selectWorkstation?.getId(),
+                    selectRfidToken?.getId()
+                )
+                onConfirm(updateData)
+                dismiss()
+                binding.pointNameTv.setText("")
+                binding.functionEt.setText("")
+                binding.powerTypeTv.text = ""
+                binding.workstationTv.text = ""
+                binding.rfidTagTv.text = ""
+                selectPowerType = null
+                selectWorkstation = null
+            }
+        }
+        binding.cancel.setOnClickListener {
+            dismiss()
+        }
+    }
+
+    fun setWorkstationData(workstationData: List<TextDropDownDialog.TextDropDownEntity>) {
+        this.workstationData = workstationData
+    }
+
+    fun setRfidTokenData(rfidTokenData: List<TextDropDownDialog.TextDropDownEntity>) {
+        this.rfidTokenData = rfidTokenData
+    }
+
+    fun setRfidData(pointManageVo: PointManageVo) {
+        pointId = pointManageVo.pointId
+        binding.pointNameTv.setText(pointManageVo.pointName.toString())
+        binding.functionEt.setText(pointManageVo.pointFunction)
+        powerTypeData.find { it.getTag() == pointManageVo.powerType }?.apply {
+            selectPowerType = this
+            binding.powerTypeTv.text = this.getShowText()
+        }
+        workstationData.find { it.getId() == pointManageVo.workstationId }?.apply {
+            selectWorkstation = this
+            binding.workstationTv.text = this.getShowText()
+        }
+        rfidTokenData.find { it.getId() == pointManageVo.rfidId }?.apply {
+            selectRfidToken = this
+            binding.rfidTagTv.text = this.getShowText()
+        }
+    }
+
+    private fun setPointPowerType() {
+        textDropDownDialog.setData(powerTypeData)
+        textDropDownDialog.setOnItemSelectListener {
+            selectPowerType = it
+            binding.powerTypeTv.text = it.getShowText()
+        }
+    }
+
+    private fun checkData(): Boolean {
+        if (binding.pointNameTv.text.trim().toString().isEmpty()) {
+            PopTip.build().tipDialog(R.string.please_input_point_name)
+            return false
+        }
+        if (binding.functionEt.text.trim().toString().isEmpty()) {
+            PopTip.build().tipDialog(R.string.please_input_point_function)
+            return false
+        }
+        if (selectPowerType == null) {
+            PopTip.build().tipDialog(R.string.please_select_power_type)
+            return false
+        }
+        if (selectWorkstation == null) {
+            PopTip.build().tipDialog(R.string.please_select_workstation)
+            return false
+        }
+        if (selectRfidToken == null) {
+            PopTip.build().tipDialog(R.string.please_select_rfid_tag)
+            return false
+        }
+        return true
+    }
+
+    /**
+     * 设置确认事件
+     */
+    fun setOnConfirmListener(onConfirm: (UpdatePointManageVo) -> Unit) {
+        this.onConfirm = onConfirm
+    }
+}

+ 60 - 3
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/PointMangeFragment.kt

@@ -3,7 +3,6 @@ package com.grkj.iscs.features.main.fragment.data_manage
 import android.graphics.Color
 import android.view.Gravity
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.ViewModelProvider
 import com.drake.brv.BindingAdapter
 import com.drake.brv.annotaion.DividerOrientation
 import com.drake.brv.utils.divider
@@ -17,6 +16,7 @@ import com.grkj.iscs.databinding.ItemPointManagePointBinding
 import com.grkj.iscs.features.main.dialog.TextDropDownDialog
 import com.grkj.iscs.features.main.dialog.data_manage.AddPointDialog
 import com.grkj.iscs.features.main.dialog.data_manage.FilterPointDialog
+import com.grkj.iscs.features.main.dialog.data_manage.UpdatePointDialog
 import com.grkj.iscs.features.main.viewmodel.data_manage.PointManageViewModel
 import com.grkj.ui_base.base.BaseFragment
 import com.grkj.ui_base.dialog.TipDialog
@@ -34,6 +34,7 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
     private val viewModel: PointManageViewModel by viewModels()
     private lateinit var filterPointDialog: FilterPointDialog
     private lateinit var addPointDialog: AddPointDialog
+    private lateinit var updatePointDialog: UpdatePointDialog
     override fun getLayoutId(): Int {
         return R.layout.fragment_point_manage
     }
@@ -43,6 +44,8 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
         filterPointDialog.popupGravity = Gravity.CENTER
         addPointDialog = AddPointDialog(requireContext())
         addPointDialog.popupGravity = Gravity.CENTER
+        updatePointDialog = UpdatePointDialog(requireContext())
+        updatePointDialog.popupGravity = Gravity.CENTER
         filterPointDialog.setOnConfirmListener {
             viewModel.pointFilterData = it
             getPointData(nextPage = false)
@@ -76,6 +79,35 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
                 }
             }
         }
+        updatePointDialog.setOnConfirmListener {
+            viewModel.updateIsolationPoint(it).observe(this) {
+                if (it) {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                            .toString(),
+                        dialogType = TipDialog.DialogType.SUCCESS,
+                        msg = CommonUtils.getStr(R.string.update_point_succeed).toString(),
+                        countDownTime = 10,
+                        showConfirm = false,
+                        onCancelClick = {
+                            getPointData(nextPage = false)
+                        }
+                    )
+                } else {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed)
+                            .toString(),
+                        dialogType = TipDialog.DialogType.ERROR,
+                        msg = CommonUtils.getStr(R.string.update_point_failed).toString(),
+                        countDownTime = 10,
+                        showConfirm = false,
+                        onCancelClick = {
+                            getPointData(nextPage = false)
+                        }
+                    )
+                }
+            }
+        }
         binding.back.setDebouncedClickListener {
             navController.popBackStack()
         }
@@ -83,18 +115,24 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
             deleteSelectPoint()
         }
         binding.addPoint.setDebouncedClickListener {
-            viewModel.initWorkStationData().observe(this) {
+            viewModel.initDialogData().observe(this) {
                 addPointDialog.setWorkstationData(viewModel.workstationData.map {
                     TextDropDownDialog.SimpleTextDropDownEntity(
                         dataId = it.workstationId,
                         dataText = it.workstationName
                     )
                 })
+                addPointDialog.setRfidTokenData(viewModel.rfidTokenData.map {
+                    TextDropDownDialog.SimpleTextDropDownEntity(
+                        dataId = it.rfidId,
+                        dataText = "${it.rfidCode}(${it.rfid})"
+                    )
+                })
                 addPointDialog.showPopupWindow()
             }
         }
         binding.filterPoint.setDebouncedClickListener {
-            viewModel.initWorkStationData().observe(this) {
+            viewModel.initDialogData().observe(this) {
                 filterPointDialog.setWorkstationData(viewModel.workstationData.map {
                     TextDropDownDialog.SimpleTextDropDownEntity(
                         dataId = it.workstationId,
@@ -138,6 +176,7 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
         itemBinding.pointName.text = item.pointName.toString()
         itemBinding.pointFunction.text = item.pointFunction
         itemBinding.workstation.text = item.workstationName
+        itemBinding.rfidToken?.text = item.rfidToken
         itemBinding.select.setOnCheckedChangeListener(null)
         itemBinding.select.isChecked = item.isSelected
         itemBinding.select.setOnCheckedChangeListener { _, checked ->
@@ -146,6 +185,24 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
             binding.selectAll.isChecked = viewModel.pointManageDataList.all { it.isSelected }
             setSelectAllListener()
         }
+        itemBinding.root.setDebouncedClickListener {
+            viewModel.initDialogData().observe(this@PointMangeFragment) {
+                updatePointDialog.setWorkstationData(viewModel.workstationData.map {
+                    TextDropDownDialog.SimpleTextDropDownEntity(
+                        dataId = it.workstationId,
+                        dataText = it.workstationName
+                    )
+                })
+                updatePointDialog.setRfidTokenData(viewModel.rfidTokenData.map {
+                    TextDropDownDialog.SimpleTextDropDownEntity(
+                        dataId = it.rfidId,
+                        dataText = "${it.rfidCode}(${it.rfid})"
+                    )
+                })
+                updatePointDialog.setRfidData(item)
+                updatePointDialog.showPopupWindow()
+            }
+        }
     }
 
     override fun initData() {

+ 16 - 3
app/src/main/java/com/grkj/iscs/features/main/viewmodel/data_manage/PointManageViewModel.kt

@@ -2,10 +2,12 @@ package com.grkj.iscs.features.main.viewmodel.data_manage
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
+import com.grkj.data.model.dos.IsRfidToken
 import com.grkj.data.model.dos.IsWorkstation
 import com.grkj.data.model.vo.AddPointManageVo
 import com.grkj.data.model.vo.PointManageFilterVo
 import com.grkj.data.model.vo.PointManageVo
+import com.grkj.data.model.vo.UpdatePointManageVo
 import com.grkj.data.repository.IIsolationPointRepository
 import com.grkj.data.repository.IRfidTokenRepository
 import com.grkj.data.repository.IWorkstationRepository
@@ -26,6 +28,7 @@ class PointManageViewModel @Inject constructor(
     private var current: Int = 0
     private var size: Int = 50
     var workstationData: List<IsWorkstation> = mutableListOf()
+    var rfidTokenData: List<IsRfidToken> = mutableListOf()
     var pointManageDataList: MutableList<PointManageVo> = mutableListOf()
     var pointFilterData: PointManageFilterVo? = null
 
@@ -65,8 +68,17 @@ class PointManageViewModel @Inject constructor(
      */
     fun addIsolationPoint(addPointManageVo: AddPointManageVo): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
-            val rfidId = rfidTokenRepository.addRfidToken(addPointManageVo.RFIDTag)
-            isolationPointRepository.addIsolationPoint(addPointManageVo, rfidId)
+            isolationPointRepository.addIsolationPoint(addPointManageVo)
+            emit(true)
+        }
+    }
+
+    /**
+     * 修改隔离点
+     */
+    fun updateIsolationPoint(updatePointManageVo: UpdatePointManageVo): LiveData<Boolean> {
+        return liveData(Dispatchers.IO) {
+            isolationPointRepository.updateIsolationPoint(updatePointManageVo)
             emit(true)
         }
     }
@@ -74,9 +86,10 @@ class PointManageViewModel @Inject constructor(
     /**
      * 初始化岗位数据
      */
-    fun initWorkStationData(): LiveData<Boolean> {
+    fun initDialogData(): LiveData<Boolean> {
         return liveData(Dispatchers.IO) {
             workstationData = workstationRepository.getWorkStationData()
+            rfidTokenData = rfidTokenRepository.getRfidData()
             emit(true)
         }
     }

+ 1 - 1
app/src/main/res/layout-land/activity_login.xml

@@ -99,7 +99,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center_horizontal"
-                    android:layout_marginTop="@dimen/common_spacing_2x"
+                    android:layout_marginTop="@dimen/common_spacing"
                     android:divider="@drawable/common_divider_normal_space_horizontal"
                     android:gravity="center_vertical"
                     android:orientation="horizontal"

+ 163 - 0
app/src/main/res/layout-land/fragment_point_manage.xml

@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="@dimen/common_spacing_2x"
+        android:background="@drawable/home_card_bg"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/title_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal"
+            android:paddingHorizontal="@dimen/common_spacing"
+            android:paddingVertical="@dimen/common_spacing_small">
+
+            <ImageView
+                android:layout_width="@dimen/common_spacing_2x"
+                android:layout_height="@dimen/common_spacing_2x"
+                android:src="@mipmap/icon_data_manage_menu_user_manage" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:layout_weight="1"
+                android:text="@string/point_manage_title"
+                android:textColor="@color/black"
+                android:textSize="24sp" />
+
+            <TextView
+                android:id="@+id/back"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/back"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_line_space"
+            android:background="@color/black" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:paddingHorizontal="@dimen/common_spacing"
+            android:paddingVertical="@dimen/common_spacing">
+
+
+            <TextView
+                android:id="@+id/add_point"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/insert"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+
+            <TextView
+                android:id="@+id/delete_point"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/delete"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+
+            <View
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                android:layout_weight="1" />
+
+            <TextView
+                android:id="@+id/filter_point"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/filter"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginHorizontal="@dimen/common_spacing_2x"
+            android:layout_marginTop="@dimen/common_spacing"
+            android:background="@drawable/common_card_bg"
+            android:divider="@drawable/divider_table"
+            android:showDividers="middle">
+
+            <CheckBox
+                android:id="@+id/select_all"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:layout_gravity="center"
+                android:layout_margin="@dimen/common_spacing" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/point_manage_point_name"
+                android:textSize="@dimen/common_text_size" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/point_manage_point_function"
+                android:textSize="@dimen/common_text_size" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/point_manage_workstation"
+                android:textSize="@dimen/common_text_size" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/point_manage_rfid"
+                android:textSize="@dimen/common_text_size" />
+        </LinearLayout>
+
+        <com.scwang.smart.refresh.layout.SmartRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginHorizontal="@dimen/common_spacing_2x"
+            android:layout_marginBottom="@dimen/common_spacing">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/role_list_rv"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/common_card_bg" />
+        </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+    </LinearLayout>
+</layout>

+ 49 - 0
app/src/main/res/layout-land/item_point_manage_point.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:divider="@drawable/divider_table"
+        android:showDividers="middle">
+
+        <CheckBox
+            android:id="@+id/select"
+            android:layout_width="30dp"
+            android:layout_height="30dp"
+            android:layout_gravity="center"
+            android:layout_margin="@dimen/common_spacing" />
+
+        <TextView
+            android:id="@+id/point_name"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="@dimen/common_text_size" />
+
+        <TextView
+            android:id="@+id/point_function"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="@dimen/common_text_size" />
+
+        <TextView
+            android:id="@+id/workstation"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="@dimen/common_text_size" />
+
+        <TextView
+            android:id="@+id/rfid_token"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="@dimen/common_text_size" />
+    </LinearLayout>
+</layout>

+ 236 - 0
app/src/main/res/layout/dialog_add_point.xml

@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="@dimen/dialog_common_root_width"
+        android:layout_height="@dimen/dialog_common_root_width"
+        android:background="@drawable/common_card_bg"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/title_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal"
+            android:paddingHorizontal="@dimen/common_spacing"
+            android:paddingVertical="@dimen/common_spacing_small">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/point_manage_add_title"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+            <ImageView
+                android:id="@+id/close_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingHorizontal="@dimen/common_spacing"
+                android:src="@drawable/icon_close" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_line_space"
+            android:background="@color/black" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_name"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <EditText
+                    android:id="@+id/point_name_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:hint="@string/please_input_point_name"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_function"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <EditText
+                    android:id="@+id/function_et"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:hint="@string/please_input_point_function"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="37dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_power_type"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/power_type_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_power_type"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="55dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_workstation"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/workstation_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_workstation"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="13dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_rfid_tag"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/rfid_tag_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_rfid_tag"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="right"
+            android:orientation="horizontal"
+            android:padding="@dimen/common_spacing">
+
+            <TextView
+                android:id="@+id/confirm"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/confirm"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+            <TextView
+                android:id="@+id/cancel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/cancel"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+        </LinearLayout>
+    </LinearLayout>
+</layout>

+ 1 - 1
app/src/main/res/layout/dialog_filter_point.xml

@@ -190,7 +190,7 @@
                     android:layout_height="wrap_content"
                     android:layout_marginLeft="@dimen/common_spacing"
                     android:background="@drawable/bg_common_input"
-                    android:hint="@string/please_input_rfid_tag"
+                    android:hint="@string/please_select_rfid_tag"
                     android:maxLines="1"
                     android:paddingHorizontal="@dimen/common_spacing"
                     android:paddingVertical="2dp"

+ 236 - 0
app/src/main/res/layout/dialog_update_point.xml

@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="@dimen/dialog_common_root_width"
+        android:layout_height="@dimen/dialog_common_root_width"
+        android:background="@drawable/common_card_bg"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/title_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:orientation="horizontal"
+            android:paddingHorizontal="@dimen/common_spacing"
+            android:paddingVertical="@dimen/common_spacing_small">
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:text="@string/point_manage_update_title"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+            <ImageView
+                android:id="@+id/close_iv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingHorizontal="@dimen/common_spacing"
+                android:src="@drawable/icon_close" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/divider_line_space"
+            android:background="@color/black" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_name"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <EditText
+                    android:id="@+id/point_name_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:hint="@string/please_input_point_name"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_function"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <EditText
+                    android:id="@+id/function_et"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:hint="@string/please_input_point_function"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="37dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_point_power_type"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/power_type_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_power_type"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="55dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_workstation"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/workstation_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_workstation"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="13dp"
+                android:layout_marginTop="@dimen/common_spacing_2x"
+                android:gravity="center_vertical"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/dialog_content_normal_padding_horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/point_manage_rfid_tag"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+
+                <TextView
+                    android:id="@+id/rfid_tag_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/common_spacing"
+                    android:background="@drawable/bg_common_input"
+                    android:drawableRight="@drawable/icon_drop_down"
+                    android:hint="@string/please_select_rfid_tag"
+                    android:maxLines="1"
+                    android:paddingHorizontal="@dimen/common_spacing"
+                    android:paddingVertical="2dp"
+                    android:singleLine="true"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/common_text_size" />
+            </LinearLayout>
+
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="right"
+            android:orientation="horizontal"
+            android:padding="@dimen/common_spacing">
+
+            <TextView
+                android:id="@+id/confirm"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/confirm"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+
+            <TextView
+                android:id="@+id/cancel"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/common_spacing"
+                android:background="@drawable/common_btn"
+                android:paddingHorizontal="@dimen/common_spacing_2x"
+                android:text="@string/cancel"
+                android:textColor="@color/black"
+                android:textSize="@dimen/common_btn_text_size" />
+        </LinearLayout>
+    </LinearLayout>
+</layout>

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

@@ -319,5 +319,10 @@
     <string name="role_in_preset_tip">The preset role cannot be deleted</string>
     <string name="point_manage_add_title">Add point</string>
     <string name="role_manage_add_title">Add role</string>
+    <string name="please_select_rfid_tag">Please select RFID tag</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_update_title">Update point</string>
+    <string name="update_point_succeed">Update point success</string>
+    <string name="update_point_failed">Update point failed</string>
 
 </resources>

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

@@ -319,5 +319,10 @@
     <string name="role_in_preset_tip">预设角色不允许删除</string>
     <string name="point_manage_add_title">添加点位</string>
     <string name="role_manage_add_title">添加角色</string>
+    <string name="please_select_rfid_tag">请选择rfid标签</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_update_title">修改点位</string>
+    <string name="update_point_succeed">保存点位成功</string>
+    <string name="update_point_failed">保存点位失败</string>
 
 </resources>

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

@@ -322,5 +322,10 @@
     <string name="role_in_preset_tip">预设角色不允许删除</string>
     <string name="point_manage_add_title">添加点位</string>
     <string name="role_manage_add_title">添加角色</string>
+    <string name="please_select_rfid_tag">请选择rfid标签</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_update_title">修改点位</string>
+    <string name="update_point_succeed">保存点位成功</string>
+    <string name="update_point_failed">保存点位失败</string>
 
 </resources>

+ 14 - 2
data/src/main/java/com/grkj/data/dao/IsolationPointDao.kt

@@ -4,6 +4,7 @@ import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
 import androidx.room.Query
+import androidx.room.Update
 import com.grkj.data.model.dos.IsIsolationPoint
 import com.grkj.data.model.vo.PointManageVo
 
@@ -17,6 +18,11 @@ interface IsolationPointDao {
      */
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     fun addIsolationPoint(isolationPoint: IsIsolationPoint)
+    /**
+     * 更新隔离点
+     */
+    @Update
+    fun updateIsolationPoint(isolationPoint: IsIsolationPoint)
 
     /**
      * 获取隔离点数据
@@ -27,7 +33,10 @@ interface IsolationPointDao {
         iip.point_name as pointName,
         iip.remark as pointFunction,
         iw.workstation_name as workstationName,
-        irt.rfid as rfidToken
+        iw.workstation_id as workstationId,
+        irt.rfid as rfidToken,
+        irt.rfid_id as rfidId,
+        iip.power_type as powerType
         from is_isolation_point iip
         left join is_rfid_token irt on iip.rfid_id = irt.rfid_id
         left join is_workstation iw on iip.workstation_id=iw.workstation_id
@@ -74,7 +83,10 @@ interface IsolationPointDao {
         iip.point_name as pointName,
         iip.remark as pointFunction,
         iw.workstation_name as workstationName,
-        irt.rfid as rfidToken
+        iw.workstation_id as workstationId,
+        irt.rfid as rfidToken,
+        irt.rfid_id as rfidId,
+        iip.power_type as powerType
         from is_isolation_point iip
         left join is_rfid_token irt on iip.rfid_id = irt.rfid_id
         left join is_workstation iw on iip.workstation_id=iw.workstation_id

+ 8 - 2
data/src/main/java/com/grkj/data/dao/JobTicketDao.kt

@@ -192,7 +192,10 @@ interface JobTicketDao {
         iip.point_name as pointName,
         iip.remark as pointFunction,
         iw.workstation_name as workstationName,
-        irt.rfid as rfidToken
+        iw.workstation_id as workstationId,
+        irt.rfid as rfidToken,
+        irt.rfid_id as rfidId,
+        iip.power_type as powerType
         from is_job_ticket_points ijtp
         left join  is_isolation_point iip on ijtp.point_id = iip.point_id
         left join is_rfid_token irt on iip.rfid_id = irt.rfid_id
@@ -295,7 +298,10 @@ interface JobTicketDao {
         iip.point_name as pointName,
         iip.remark as pointFunction,
         iw.workstation_name as workstationName,
-        irt.rfid as rfidToken
+        iw.workstation_id as workstationId,
+        irt.rfid as rfidToken,
+        irt.rfid_id as rfidId,
+        iip.power_type as powerType
         from is_job_ticket_points ijtp
         left join  is_isolation_point iip on ijtp.point_id = iip.point_id
         left join is_rfid_token irt on iip.rfid_id = irt.rfid_id

+ 7 - 0
data/src/main/java/com/grkj/data/dao/RfidTokenDao.kt

@@ -3,6 +3,7 @@ package com.grkj.data.dao
 import androidx.room.Dao
 import androidx.room.Insert
 import androidx.room.OnConflictStrategy
+import androidx.room.Query
 import com.grkj.data.model.dos.IsRfidToken
 
 /**
@@ -16,4 +17,10 @@ interface RfidTokenDao {
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     fun insertRfidToken(rfidToken: IsRfidToken): Long
 
+    /**
+     * 获取rfid数据
+     */
+    @Query("select * from is_rfid_token where del_flag = 0")
+    fun getRfidData(): List<IsRfidToken>
+
 }

+ 1 - 1
data/src/main/java/com/grkj/data/model/vo/AddPointManageVo.kt

@@ -8,5 +8,5 @@ data class AddPointManageVo(
     val pointFunction: String?,
     val powerType: String?,
     val workstationId: Long?,
-    val RFIDTag: String?
+    val rfidId: Long?
 )

+ 3 - 0
data/src/main/java/com/grkj/data/model/vo/PointManageVo.kt

@@ -11,6 +11,9 @@ class PointManageVo {
     var pointFunction: String? = ""
     var workstationName: String? = ""
     var rfidToken: String? = ""
+    var rfidId: Long? = 0
+    var workstationId: Long? = 0
+    var powerType: String? = ""
 
     @Ignore
     var isSelected: Boolean = false

+ 13 - 0
data/src/main/java/com/grkj/data/model/vo/UpdatePointManageVo.kt

@@ -0,0 +1,13 @@
+package com.grkj.data.model.vo
+
+/**
+ * 修改隔离点
+ */
+data class UpdatePointManageVo(
+    val pointId: Long,
+    val pointName: String?,
+    val pointFunction: String?,
+    val powerType: String?,
+    val workstationId: Long?,
+    val rfidId: Long?
+)

+ 7 - 1
data/src/main/java/com/grkj/data/repository/IIsolationPointRepository.kt

@@ -3,6 +3,7 @@ package com.grkj.data.repository
 import com.grkj.data.model.vo.AddPointManageVo
 import com.grkj.data.model.vo.PointManageFilterVo
 import com.grkj.data.model.vo.PointManageVo
+import com.grkj.data.model.vo.UpdatePointManageVo
 
 /**
  * 隔离点仓储
@@ -25,7 +26,12 @@ interface IIsolationPointRepository {
     /**
      * 添加隔离点
      */
-    fun addIsolationPoint(addPointManageVo: AddPointManageVo, rfidId: Long)
+    fun addIsolationPoint(addPointManageVo: AddPointManageVo)
+
+    /**
+     * 添加隔离点
+     */
+    fun updateIsolationPoint(updatePointManageVo: UpdatePointManageVo)
 
     /**
      * 获取所有隔离点数据

+ 4 - 2
data/src/main/java/com/grkj/data/repository/IRfidTokenRepository.kt

@@ -1,11 +1,13 @@
 package com.grkj.data.repository
 
+import com.grkj.data.model.dos.IsRfidToken
+
 /**
  * RFID标签仓储
  */
 interface IRfidTokenRepository {
     /**
-     * 添加rfid
+     * 获取rfid数据
      */
-    fun addRfidToken(rfidToken: String?): Long
+    fun getRfidData(): List<IsRfidToken>
 }

+ 16 - 7
data/src/main/java/com/grkj/data/repository/impl/IsolationPointRepository.kt

@@ -1,11 +1,11 @@
 package com.grkj.data.repository.impl
 
 import com.grkj.data.dao.IsolationPointDao
-import com.grkj.data.database.ISCSDatabase
 import com.grkj.data.model.dos.IsIsolationPoint
 import com.grkj.data.model.vo.AddPointManageVo
 import com.grkj.data.model.vo.PointManageFilterVo
 import com.grkj.data.model.vo.PointManageVo
+import com.grkj.data.model.vo.UpdatePointManageVo
 import com.grkj.data.repository.BaseRepository
 import com.grkj.data.repository.IIsolationPointRepository
 import javax.inject.Inject
@@ -15,7 +15,8 @@ import javax.inject.Singleton
  * 隔离点仓储实现
  */
 @Singleton
-class IsolationPointRepository @Inject constructor(val isolationPointDao: IsolationPointDao) : BaseRepository(), IIsolationPointRepository {
+class IsolationPointRepository @Inject constructor(val isolationPointDao: IsolationPointDao) :
+    BaseRepository(), IIsolationPointRepository {
 
     override fun deletePointByPointIds(pointIds: List<Long>) {
         isolationPointDao.deletePointByPointIds(pointIds)
@@ -37,19 +38,27 @@ class IsolationPointRepository @Inject constructor(val isolationPointDao: Isolat
         )
     }
 
-    override fun addIsolationPoint(
-        addPointManageVo: AddPointManageVo,
-        rfidId: Long
-    ) {
+    override fun addIsolationPoint(addPointManageVo: AddPointManageVo) {
         val isIsolationPoint = IsIsolationPoint()
         isIsolationPoint.pointName = addPointManageVo.pointName.toString()
         isIsolationPoint.powerType = addPointManageVo.powerType
         isIsolationPoint.workstationId = addPointManageVo.workstationId
-        isIsolationPoint.rfidId = rfidId
+        isIsolationPoint.rfidId = addPointManageVo.rfidId
         isIsolationPoint.remark = addPointManageVo.pointFunction
         isolationPointDao.addIsolationPoint(isIsolationPoint)
     }
 
+    override fun updateIsolationPoint(updatePointManageVo: UpdatePointManageVo) {
+        val isIsolationPoint = IsIsolationPoint()
+        isIsolationPoint.pointId = updatePointManageVo.pointId
+        isIsolationPoint.pointName = updatePointManageVo.pointName.toString()
+        isIsolationPoint.powerType = updatePointManageVo.powerType
+        isIsolationPoint.workstationId = updatePointManageVo.workstationId
+        isIsolationPoint.rfidId = updatePointManageVo.rfidId
+        isIsolationPoint.remark = updatePointManageVo.pointFunction
+        isolationPointDao.updateIsolationPoint(isIsolationPoint)
+    }
+
     override fun getAllPointManageDataWithWorkstationId(workstationId: Long): MutableList<PointManageVo> {
         return isolationPointDao.getAllPointManageDataWithWorkstationId(workstationId)
     }

+ 2 - 4
data/src/main/java/com/grkj/data/repository/impl/RfidTokenRepository.kt

@@ -14,9 +14,7 @@ import javax.inject.Singleton
  */
 @Singleton
 class RfidTokenRepository @Inject constructor(val rfidTokenDao: RfidTokenDao): BaseRepository(), IRfidTokenRepository {
-    override fun addRfidToken(rfidToken: String?): Long {
-        val isRfidToken = IsRfidToken()
-        isRfidToken.rfid = rfidToken ?: ""
-        return rfidTokenDao.insertRfidToken(isRfidToken)
+    override fun getRfidData(): List<IsRfidToken> {
+        return rfidTokenDao.getRfidData()
     }
 }