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

refactor(更新)
- 作业内容的共锁人的部分查询逻辑的完成和展示完成

周文健 5 месяцев назад
Родитель
Сommit
38183c9e66
30 измененных файлов с 1513 добавлено и 892 удалено
  1. 0 1
      app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/PointMangeFragment.kt
  2. 0 1
      app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/RoleManageFragment.kt
  3. 32 3
      app/src/main/java/com/grkj/iscs/features/main/fragment/home/HomeFragment.kt
  4. 7 2
      app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/EditJobFragment.kt
  5. 69 1
      app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobExecuteFragment.kt
  6. 7 7
      app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobManageFragment.kt
  7. 82 0
      app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/LockedPointsFragment.kt
  8. 23 1
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/JobExecuteViewModel.kt
  9. 37 0
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/LockedPointsViewModel.kt
  10. 178 169
      app/src/main/res/layout/fragment_create_job.xml
  11. 176 167
      app/src/main/res/layout/fragment_create_sop.xml
  12. 157 148
      app/src/main/res/layout/fragment_create_sop_job.xml
  13. 138 129
      app/src/main/res/layout/fragment_edit_job.xml
  14. 135 126
      app/src/main/res/layout/fragment_edit_sop.xml
  15. 125 116
      app/src/main/res/layout/fragment_edit_sop_job.xml
  16. 2 2
      app/src/main/res/layout/fragment_home.xml
  17. 91 10
      app/src/main/res/layout/fragment_job_execute.xml
  18. 1 1
      app/src/main/res/layout/fragment_job_manage.xml
  19. 99 0
      app/src/main/res/layout/fragment_locked_point.xml
  20. 28 0
      app/src/main/res/layout/item_job_execute_colock.xml
  21. 34 0
      app/src/main/res/layout/item_locked_points_point.xml
  22. 9 0
      app/src/main/res/values-en/strings.xml
  23. 9 0
      app/src/main/res/values-zh/strings.xml
  24. 9 0
      app/src/main/res/values/strings.xml
  25. 1 0
      data/src/main/java/com/grkj/data/dao/IsSopDao.kt
  26. 39 7
      data/src/main/java/com/grkj/data/dao/JobTicketDao.kt
  27. 3 1
      data/src/main/java/com/grkj/data/model/vo/IsJobTicketUserDataVo.kt
  28. 11 0
      data/src/main/java/com/grkj/data/repository/IJobTicketRepository.kt
  29. 10 0
      data/src/main/java/com/grkj/data/repository/impl/JobTicketRepository.kt
  30. 1 0
      ui-base/src/main/java/com/grkj/ui_base/dialog/LoadingDialog.kt

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

@@ -43,7 +43,6 @@ class PointMangeFragment : BaseFragment<FragmentPointManageBinding>() {
         filterPointDialog.popupGravity = Gravity.CENTER
         addPointDialog = AddPointDialog(requireContext())
         addPointDialog.popupGravity = Gravity.CENTER
-        binding.back.setOnClickListener { navController.popBackStack() }
         filterPointDialog.setOnConfirmListener {
             viewModel.pointFilterData = it
             getPointData(nextPage = false)

+ 0 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/data_manage/RoleManageFragment.kt

@@ -47,7 +47,6 @@ class RoleManageFragment : BaseFragment<FragmentRoleManageBinding>() {
         addRoleDialog.popupGravity = Gravity.CENTER
         updateRoleDialog = UpdateRoleDialog(requireContext())
         updateRoleDialog.popupGravity = Gravity.CENTER
-        binding.back.setOnClickListener { navController.popBackStack() }
         filterRoleDialog.setOnConfirmListener {
             viewModel.roleFilterData = it
             getRoleData(nextPage = false)

+ 32 - 3
app/src/main/java/com/grkj/iscs/features/main/fragment/home/HomeFragment.kt

@@ -64,9 +64,16 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
                 onQuickEntranceBinding(this)
             }
         }
+        binding.realTimeDataZone.text = getString(R.string.all)
+        binding.overviewDataZone.text = getString(R.string.all)
+        binding.lockMode.text = getString(R.string.all)
         binding.realTimeDataZone.setDebouncedClickListener {
             setWorkstationData(binding.realTimeDataZone) {
-                viewModel.realTimeDataZoneId = it.getId()
+                if (it.getShowText() == getString(R.string.all)) {
+                    viewModel.realTimeDataZoneId = null
+                } else {
+                    viewModel.realTimeDataZoneId = it.getId()
+                }
             }
         }
         binding.lockMode.setDebouncedClickListener {
@@ -74,7 +81,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
         }
         binding.overviewDataZone.setDebouncedClickListener {
             setWorkstationData(binding.overviewDataZone) {
-                viewModel.overviewDataZoneId = it.getId()
+                if (it.getShowText() == getString(R.string.all)) {
+                    viewModel.overviewDataZoneId = null
+                } else {
+                    viewModel.overviewDataZoneId = it.getId()
+                }
             }
         }
         binding.ongoingJobNum.setDebouncedClickListener {
@@ -172,6 +183,13 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
                         dataId = it.workstationId,
                         dataText = it.workstationName
                     )
+                }.toMutableList().apply {
+                    add(
+                        0, TextDropDownDialog.SimpleTextDropDownEntity(
+                            dataId = 0,
+                            dataText = getString(R.string.all)
+                        )
+                    )
                 })
             textDropDownDialog.setOnItemSelectListener {
                 workstationTv.text = it.getShowText()
@@ -189,10 +207,21 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
                     dataTag = it.getLockModeType(),
                     dataText = it.getLockModeStr()
                 )
+            }.toMutableList().apply {
+                add(
+                    0, TextDropDownDialog.SimpleTextDropDownEntity(
+                        dataId = 0,
+                        dataText = getString(R.string.all)
+                    )
+                )
             })
         textDropDownDialog.setOnItemSelectListener {
             binding.lockMode.text = it.getShowText()
-            viewModel.selectedLockMode = it.getTag()
+            if (it.getShowText() == getString(R.string.all)) {
+                viewModel.selectedLockMode = ""
+            } else {
+                viewModel.selectedLockMode = it.getTag()
+            }
             getHomeData()
         }
         textDropDownDialog.showPopupWindow(binding.lockMode)

+ 7 - 2
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/EditJobFragment.kt

@@ -71,7 +71,10 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
                     onConfirmClick = {
                         viewModel.startJob().observe(this) {
                             GlobalDataTempStore.getInstance()
-                                .saveData(DataTransferConstants.KEY_JOB_TICKET_ID, viewModel.jobTicketData?.ticketId?:0)
+                                .saveData(
+                                    DataTransferConstants.KEY_JOB_TICKET_ID,
+                                    viewModel.jobTicketData?.ticketId ?: 0
+                                )
                             navController.navigate(R.id.action_editJobFragment_to_jobExecuteFragment)
                         }
                     })
@@ -282,7 +285,9 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
             selectedLockerData = viewModel.jobLockerData
             selectedColockerData = viewModel.jobColockerData
             binding.pointRv.models = viewModel.jobPointsData
-            binding.lockerName.text = viewModel.jobLockerData.first().nickName
+            viewModel.jobLockerData.firstOrNull()?.let {
+                binding.lockerName.text = it.nickName
+            }
             binding.colockerRv.models = viewModel.jobColockerData
             binding.selectColockerLayout.isVisible =
                 selectedLockMode?.contains(LockStepEnum.COLOCK.type.toString()) == true

+ 69 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobExecuteFragment.kt

@@ -6,17 +6,23 @@ import androidx.core.view.isVisible
 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.dividerSpace
+import com.drake.brv.utils.grid
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import com.grkj.data.enums.LockModeEnum
 import com.grkj.data.enums.LockStepEnum
+import com.grkj.data.enums.RoleEnum
 import com.grkj.data.model.vo.IsJobTicketPointsDataVo
 import com.grkj.data.model.vo.IsJobTicketStepDataVo
+import com.grkj.data.model.vo.IsJobTicketUserDataVo
 import com.grkj.data.model.vo.UserManageVo
 import com.grkj.iscs.R
 import com.grkj.iscs.common.DataTransferConstants
 import com.grkj.iscs.databinding.FragmentJobExecuteBinding
+import com.grkj.iscs.databinding.ItemJobExecuteColockBinding
 import com.grkj.iscs.databinding.ItemJobExecutePointBinding
 import com.grkj.iscs.databinding.ItemJobExecuteStepBinding
 import com.grkj.iscs.features.main.viewmodel.job_manage.JobExecuteViewModel
@@ -68,11 +74,33 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
             }
         }
         binding.toLock.setDebouncedClickListener {
-            viewModel.toLock().observe(this) {}
+            viewModel.toLock().observe(this) {
+
+            }
         }
         binding.toUnlock.setDebouncedClickListener {
             viewModel.toUnLock().observe(this) {}
         }
+        binding.waitToColockRv.grid(3).dividerSpace(10, DividerOrientation.GRID).setup {
+            addType<IsJobTicketUserDataVo>(R.layout.item_job_execute_colock)
+            onBind {
+                onColockerRVListBinding(this)
+            }
+        }
+
+        binding.alreadyColockRv.grid(3).dividerSpace(10, DividerOrientation.GRID).setup {
+            addType<IsJobTicketUserDataVo>(R.layout.item_job_execute_colock)
+            onBind {
+                onColockerRVListBinding(this)
+            }
+        }
+
+        binding.alreadyUncolockRv.grid(3).dividerSpace(10, DividerOrientation.GRID).setup {
+            addType<IsJobTicketUserDataVo>(R.layout.item_job_execute_colock)
+            onBind {
+                onColockerRVListBinding(this)
+            }
+        }
     }
 
     private fun BindingAdapter.BindingViewHolder.onStepRVListBinding(holder: BindingAdapter.BindingViewHolder) {
@@ -141,6 +169,18 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
         }
     }
 
+    private fun onColockerRVListBinding(holder: BindingAdapter.BindingViewHolder) {
+        val itemBinding = holder.getBinding<ItemJobExecuteColockBinding>()
+        val item = holder.getModel<IsJobTicketUserDataVo>()
+        itemBinding.name.text = item.nickName
+        itemBinding.root.setOnClickListener {
+            item.jobStatus = ((item.jobStatus ?: "0").toInt() + 1).toString()
+            viewModel.colockerStatusChange(item).observe(this@JobExecuteFragment) {
+                getData()
+            }
+        }
+    }
+
     private fun getStepIcon(stepIndex: Int): Int {
         return when (stepIndex) {
             LockStepEnum.SELECT_MEMBER.type -> R.drawable.icon_select_member
@@ -226,11 +266,39 @@ class JobExecuteFragment : BaseFragment<FragmentJobExecuteBinding>() {
         }
         viewModel.ticketId = GlobalDataTempStore.getInstance()
             .getData(DataTransferConstants.KEY_JOB_TICKET_ID) as Long
+        getData()
+    }
+
+    private fun getData() {
         viewModel.getJobTicketData().observe(this) {
             binding.jobNameTv.text = viewModel.ticketData.ticketName
             binding.listRv.models = viewModel.ticketPoints
             binding.stepRv.models = viewModel.ticketStep
             viewModel.currentStepData = viewModel.ticketStep.firstOrNull { it.stepStatus == "0" }
+            binding.spaceView.isVisible =
+                viewModel.ticketData.lockMode?.contains(LockStepEnum.COLOCK.type.toString()) == false
+            binding.colockerLayout.isVisible =
+                viewModel.ticketData.lockMode?.contains(LockStepEnum.COLOCK.type.toString()) == true
+            viewModel.ticketUser.let {
+                binding.waitToColockRv.models =
+                    it.filter { it.jobStatus == "0" && it.userRole == RoleEnum.JTCOLOCKER.roleKey }
+                binding.waitToColock.text =
+                    getString(
+                        R.string.wait_to_colock,
+                        it.count { it.jobStatus == "0" && it.userRole == RoleEnum.JTCOLOCKER.roleKey })
+                binding.alreadyColockRv.models =
+                    it.filter { it.jobStatus == "1" && it.userRole == RoleEnum.JTCOLOCKER.roleKey }
+                binding.alreadyColock.text =
+                    getString(
+                        R.string.already_colock,
+                        it.count { it.jobStatus == "1" && it.userRole == RoleEnum.JTCOLOCKER.roleKey })
+                binding.alreadyUncolockRv.models =
+                    it.filter { it.jobStatus == "2" && it.userRole == RoleEnum.JTCOLOCKER.roleKey }
+                binding.alreadyUncolock.text =
+                    getString(
+                        R.string.already_uncolock,
+                        it.count { it.jobStatus == "2" && it.userRole == RoleEnum.JTCOLOCKER.roleKey })
+            }
             checkCurrentStep()
         }
     }

+ 7 - 7
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/JobManageFragment.kt

@@ -38,8 +38,8 @@ class JobManageFragment : BaseFragment<FragmentJobManageBinding>() {
         binding.back.setDebouncedClickListener {
             navController.popBackStack()
         }
-        binding.deleteSop.setDebouncedClickListener {
-            deleteSelectedSop()
+        binding.delete.setDebouncedClickListener {
+            deleteSelected()
         }
         binding.refreshLayout.setOnRefreshListener {
             getData(nextPage = false)
@@ -61,20 +61,20 @@ class JobManageFragment : BaseFragment<FragmentJobManageBinding>() {
         setSelectAllListener()
     }
 
-    private fun deleteSelectedSop() {
+    private fun deleteSelected() {
         if (viewModel.jobManageDataList.none { it.isSelected }) {
-            PopTip.tip(R.string.please_select_sop)
+            PopTip.tip(R.string.please_select_job)
             return
         }
         TipDialog.show(
-            msg = CommonUtils.getStr(R.string.check_delete_sop).toString(),
+            msg = CommonUtils.getStr(R.string.check_delete_job).toString(),
             countDownTime = 10,
             onConfirmClick = {
                 viewModel.deleteSelectedJob().observe(this) {
                     if (it) {
                         TipDialog.show(
                             dialogType = TipDialog.DialogType.SUCCESS,
-                            msg = CommonUtils.getStr(R.string.sop_manage_delete_succeed)
+                            msg = CommonUtils.getStr(R.string.job_manage_delete_succeed)
                                 .toString(),
                             showConfirm = false,
                             countDownTime = 10,
@@ -88,7 +88,7 @@ class JobManageFragment : BaseFragment<FragmentJobManageBinding>() {
                     } else {
                         TipDialog.show(
                             dialogType = TipDialog.DialogType.ERROR,
-                            msg = CommonUtils.getStr(R.string.sop_manage_delete_failed)
+                            msg = CommonUtils.getStr(R.string.job_manage_delete_failed)
                                 .toString(),
                             showConfirm = false,
                             countDownTime = 10

+ 82 - 0
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/LockedPointsFragment.kt

@@ -0,0 +1,82 @@
+package com.grkj.iscs.features.main.fragment.job_manage
+
+import android.graphics.Color
+import android.view.Gravity
+import androidx.fragment.app.viewModels
+import com.drake.brv.BindingAdapter
+import com.drake.brv.annotaion.DividerOrientation
+import com.drake.brv.utils.divider
+import com.drake.brv.utils.linear
+import com.drake.brv.utils.models
+import com.drake.brv.utils.setup
+import com.grkj.data.model.vo.PointManageVo
+import com.grkj.iscs.R
+import com.grkj.iscs.databinding.FragmentLockedPointBinding
+import com.grkj.iscs.databinding.ItemLockedPointsPointBinding
+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.viewmodel.job_manage.LockedPointsViewModel
+import com.grkj.ui_base.base.BaseFragment
+import com.grkj.ui_base.dialog.TipDialog
+import com.grkj.ui_base.utils.CommonUtils
+import com.kongzue.dialogx.dialogs.PopTip
+import com.sik.sikcore.extension.setDebouncedClickListener
+import dagger.hilt.android.AndroidEntryPoint
+import kotlin.getValue
+
+/**
+ * 锁定中的点位
+ */
+@AndroidEntryPoint
+class LockedPointsFragment : BaseFragment<FragmentLockedPointBinding>() {
+    private val viewModel: LockedPointsViewModel by viewModels()
+    override fun getLayoutId(): Int {
+        return R.layout.fragment_locked_point
+    }
+
+    override fun initView() {
+        binding.back.setDebouncedClickListener {
+            navController.popBackStack()
+        }
+        binding.refreshLayout.setOnRefreshListener {
+            getPointData(nextPage = false)
+        }
+        binding.refreshLayout.setOnLoadMoreListener {
+            getPointData()
+        }
+        binding.roleListRv.linear().divider {
+            this.setColor(Color.BLACK)
+            this.startVisible = false
+            this.endVisible = true
+            this.orientation = DividerOrientation.VERTICAL
+        }.setup {
+            addType<PointManageVo>(R.layout.item_locked_points_point)
+            onBind {
+                onRoleDataBinding(this)
+            }
+        }
+    }
+
+    private fun BindingAdapter.BindingViewHolder.onRoleDataBinding(holder: BindingAdapter.BindingViewHolder) {
+        val itemBinding = holder.getBinding<ItemLockedPointsPointBinding>()
+        val item = holder.getModel<PointManageVo>()
+        itemBinding.pointName.text = item.pointName.toString()
+        itemBinding.pointFunction.text = item.pointFunction
+        itemBinding.workstation.text = item.workstationName
+    }
+
+    override fun initData() {
+        super.initData()
+        getPointData(nextPage = false)
+    }
+
+    private fun getPointData(nextPage: Boolean = true) {
+        viewModel.getLockedPointsData(nextPage).observe(this) {
+            binding.refreshLayout.finishRefresh()
+            binding.refreshLayout.finishLoadMore()
+            binding.roleListRv.models = viewModel.lockedPoints
+        }
+    }
+}

+ 23 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/JobExecuteViewModel.kt

@@ -127,6 +127,12 @@ class JobExecuteViewModel @Inject constructor(val jobTicketRepository: IJobTicke
                         CommonUtils.getStr(com.grkj.ui_base.R.string.lock_is_not_enough).toString(),
                         TipDialog.DialogType.ERROR,
                         countDownTime = 10,
+                        onConfirmClick = {
+                            LoadingEvent.sendLoadingEvent()
+                        },
+                        onCancelClick = {
+                            LoadingEvent.sendLoadingEvent()
+                        }
                     )
                     return@checkEquipCount
                 }
@@ -135,7 +141,13 @@ class JobExecuteViewModel @Inject constructor(val jobTicketRepository: IJobTicke
                         CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),
                         CommonUtils.getStr(com.grkj.ui_base.R.string.no_available_key).toString(),
                         TipDialog.DialogType.ERROR,
-                        countDownTime = 10
+                        countDownTime = 10,
+                        onConfirmClick = {
+                            LoadingEvent.sendLoadingEvent()
+                        },
+                        onCancelClick = {
+                            LoadingEvent.sendLoadingEvent()
+                        }
                     )
                     return@checkEquipCount
                 }
@@ -201,4 +213,14 @@ class JobExecuteViewModel @Inject constructor(val jobTicketRepository: IJobTicke
             emit(true)
         }
     }
+
+    /**
+     * 更新共锁人状态
+     */
+    fun colockerStatusChange(jobTicketUserData: IsJobTicketUserDataVo): LiveData<Boolean> {
+        return liveData(Dispatchers.IO) {
+            jobTicketRepository.colockerStatusChange(jobTicketUserData)
+            emit(true)
+        }
+    }
 }

+ 37 - 0
app/src/main/java/com/grkj/iscs/features/main/viewmodel/job_manage/LockedPointsViewModel.kt

@@ -0,0 +1,37 @@
+package com.grkj.iscs.features.main.viewmodel.job_manage
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.liveData
+import com.grkj.data.model.vo.PointManageVo
+import com.grkj.data.repository.IJobTicketRepository
+import com.grkj.data.repository.impl.JobTicketRepository
+import com.grkj.ui_base.base.BaseViewModel
+import dagger.hilt.android.lifecycle.HiltViewModel
+import kotlinx.coroutines.Dispatchers
+import javax.inject.Inject
+
+/**
+ * 锁定中的点位
+ */
+@HiltViewModel
+class LockedPointsViewModel @Inject constructor(val jobTicketRepository: IJobTicketRepository) :
+    BaseViewModel() {
+    private var current: Int = 0
+    private var size: Int = 50
+    var lockedPoints: List<PointManageVo>? = listOf()
+
+    /**
+     * 获取锁定中的点位
+     */
+    fun getLockedPointsData(nextPage: Boolean): LiveData<Boolean> {
+        return liveData(Dispatchers.IO) {
+            lockedPoints = jobTicketRepository.getLockedPointsData(current, size)
+            if (nextPage) {
+                current += 1
+            } else {
+                current = 0
+            }
+            emit(true)
+        }
+    }
+}

+ 178 - 169
app/src/main/res/layout/fragment_create_job.xml

@@ -169,236 +169,245 @@
         </LinearLayout>
 
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
 
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_height="0dp"
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-                <TextView
-                    android:id="@+id/select_point_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    android:orientation="horizontal">
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                    <TextView
+                        android:id="@+id/select_point_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/point_rv"
+                <View
                     android:layout_width="match_parent"
-                    android:layout_height="240dp"
-                    android:paddingBottom="10dp" />
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
-                    android:id="@+id/no_selected_point_layout"
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
+                    android:layout_height="match_parent">
 
-                    <ImageView
-                        android:layout_width="80dp"
-                        android:layout_height="80dp"
-                        android:src="@drawable/icon_add_box" />
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/point_rv"
+                        android:layout_width="match_parent"
+                        android:layout_height="240dp"
+                        android:paddingBottom="10dp" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
+                    <LinearLayout
+                        android:id="@+id/no_selected_point_layout"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:background="@drawable/card_white_bg"
                         android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/please_must_select_at_least_one_point"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
-                </LinearLayout>
-            </FrameLayout>
+                        android:orientation="vertical">
 
-        </LinearLayout>
+                        <ImageView
+                            android:layout_width="80dp"
+                            android:layout_height="80dp"
+                            android:src="@drawable/icon_add_box" />
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/please_must_select_at_least_one_point"
+                            android:textColor="@color/black"
+                            android:textSize="24sp" />
+                    </LinearLayout>
+                </FrameLayout>
+
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_height="0dp"
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:id="@+id/select_member_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:gravity="center"
-                    android:orientation="horizontal">
+                    android:layout_height="match_parent">
 
                     <LinearLayout
-                        android:layout_width="wrap_content"
+                        android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:background="@drawable/home_card_bg"
-                        android:orientation="vertical">
+                        android:gravity="center"
+                        android:orientation="horizontal">
 
-                        <TextView
+                        <LinearLayout
                             android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:gravity="center"
-                            android:paddingHorizontal="20dp"
-                            android:paddingVertical="10dp"
-                            android:text="@string/locker"
-                            android:textColor="@color/black"
-                            android:textSize="24sp" />
+                            android:layout_height="match_parent"
+                            android:background="@drawable/home_card_bg"
+                            android:orientation="vertical">
 
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/locker"
+                                android:textColor="@color/black"
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent"
+                                android:gravity="center"
+                                android:orientation="vertical"
+                                android:paddingBottom="10dp">
+
+                                <ImageView
+                                    android:layout_width="50dp"
+                                    android:layout_height="50dp"
+                                    android:layout_marginTop="10dp"
+                                    android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                    android:tint="@color/black" />
+
+                                <TextView
+                                    android:id="@+id/locker_name"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:gravity="center"
+                                    android:textColor="@color/black"
+                                    android:textSize="20sp" />
+                            </LinearLayout>
+                        </LinearLayout>
 
                         <LinearLayout
+                            android:id="@+id/select_colocker_layout"
                             android:layout_width="match_parent"
                             android:layout_height="match_parent"
-                            android:gravity="center"
-                            android:paddingBottom="10dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/home_card_bg"
                             android:orientation="vertical">
 
-                            <ImageView
-                                android:layout_width="50dp"
-                                android:layout_height="50dp"
-                                android:layout_marginTop="10dp"
-                                android:src="@mipmap/icon_data_manage_menu_user_manage"
-                                android:tint="@color/black" />
-
                             <TextView
-                                android:id="@+id/locker_name"
-                                android:layout_width="wrap_content"
+                                android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/colocker"
                                 android:textColor="@color/black"
-                                android:textSize="20sp" />
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <androidx.recyclerview.widget.RecyclerView
+                                android:id="@+id/colocker_rv"
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent" />
                         </LinearLayout>
+
                     </LinearLayout>
 
                     <LinearLayout
-                        android:id="@+id/select_colocker_layout"
+                        android:id="@+id/no_selected_member_layout"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:background="@drawable/home_card_bg"
+                        android:background="@drawable/card_white_bg"
+                        android:gravity="center"
                         android:orientation="vertical">
 
+                        <ImageView
+                            android:layout_width="80dp"
+                            android:layout_height="80dp"
+                            android:src="@drawable/icon_add_box" />
+
                         <TextView
-                            android:layout_width="match_parent"
+                            android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
                             android:paddingHorizontal="20dp"
                             android:paddingVertical="10dp"
-                            android:text="@string/colocker"
+                            android:text="@string/please_select_member"
                             android:textColor="@color/black"
                             android:textSize="24sp" />
-
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
-
-                        <androidx.recyclerview.widget.RecyclerView
-                            android:id="@+id/colocker_rv"
-                            android:layout_width="wrap_content"
-                            android:layout_height="match_parent" />
                     </LinearLayout>
-
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/no_selected_member_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
-
-                    <ImageView
-                        android:layout_width="80dp"
-                        android:layout_height="80dp"
-                        android:src="@drawable/icon_add_box" />
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/please_select_member"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
-                </LinearLayout>
-            </FrameLayout>
+                </FrameLayout>
+            </LinearLayout>
         </LinearLayout>
 
         <LinearLayout
@@ -418,7 +427,7 @@
 
             <View
                 android:layout_width="0dp"
-                android:layout_height="wrap_content"
+                android:layout_height="1dp"
                 android:layout_weight="1" />
 
             <TextView

+ 176 - 167
app/src/main/res/layout/fragment_create_sop.xml

@@ -167,238 +167,247 @@
                     android:textSize="18sp" />
             </LinearLayout>
         </LinearLayout>
-
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
-
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_weight="1"
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-                <TextView
-                    android:id="@+id/select_point_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    android:orientation="horizontal">
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                    <TextView
+                        android:id="@+id/select_point_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/point_rv"
+                <View
                     android:layout_width="match_parent"
-                    android:layout_height="240dp"
-                    android:paddingBottom="10dp" />
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
-                    android:id="@+id/no_selected_point_layout"
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
+                    android:layout_height="match_parent">
 
-                    <ImageView
-                        android:layout_width="80dp"
-                        android:layout_height="80dp"
-                        android:src="@drawable/icon_add_box" />
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/point_rv"
+                        android:layout_width="match_parent"
+                        android:layout_height="240dp"
+                        android:paddingBottom="10dp" />
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
+                    <LinearLayout
+                        android:id="@+id/no_selected_point_layout"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:background="@drawable/card_white_bg"
                         android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/please_must_select_at_least_one_point"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
-                </LinearLayout>
-            </FrameLayout>
+                        android:orientation="vertical">
 
-        </LinearLayout>
+                        <ImageView
+                            android:layout_width="80dp"
+                            android:layout_height="80dp"
+                            android:src="@drawable/icon_add_box" />
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/please_must_select_at_least_one_point"
+                            android:textColor="@color/black"
+                            android:textSize="24sp" />
+                    </LinearLayout>
+                </FrameLayout>
+
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
 
-                <TextView
+                android:layout_weight="1"
+                android:layout_marginVertical="10dp"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
+
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:id="@+id/select_member_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:gravity="center"
-                    android:orientation="horizontal">
+                    android:layout_height="match_parent">
 
                     <LinearLayout
-                        android:layout_width="wrap_content"
+                        android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:background="@drawable/home_card_bg"
-                        android:orientation="vertical">
+                        android:gravity="center"
+                        android:orientation="horizontal">
 
-                        <TextView
+                        <LinearLayout
                             android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:gravity="center"
-                            android:paddingHorizontal="20dp"
-                            android:paddingVertical="10dp"
-                            android:text="@string/locker"
-                            android:textColor="@color/black"
-                            android:textSize="24sp" />
+                            android:layout_height="match_parent"
+                            android:background="@drawable/home_card_bg"
+                            android:orientation="vertical">
 
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/locker"
+                                android:textColor="@color/black"
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent"
+                                android:gravity="center"
+                                android:paddingBottom="10dp"
+                                android:orientation="vertical">
+
+                                <ImageView
+                                    android:layout_width="50dp"
+                                    android:layout_height="50dp"
+                                    android:layout_marginTop="10dp"
+                                    android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                    android:tint="@color/black" />
+
+                                <TextView
+                                    android:id="@+id/locker_name"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:gravity="center"
+                                    android:textColor="@color/black"
+                                    android:textSize="20sp" />
+                            </LinearLayout>
+                        </LinearLayout>
 
                         <LinearLayout
+                            android:id="@+id/select_colocker_layout"
                             android:layout_width="match_parent"
                             android:layout_height="match_parent"
-                            android:gravity="center"
-                            android:paddingBottom="10dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/home_card_bg"
                             android:orientation="vertical">
 
-                            <ImageView
-                                android:layout_width="50dp"
-                                android:layout_height="50dp"
-                                android:layout_marginTop="10dp"
-                                android:src="@mipmap/icon_data_manage_menu_user_manage"
-                                android:tint="@color/black" />
-
                             <TextView
-                                android:id="@+id/locker_name"
-                                android:layout_width="wrap_content"
+                                android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/colocker"
                                 android:textColor="@color/black"
-                                android:textSize="20sp" />
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <androidx.recyclerview.widget.RecyclerView
+                                android:id="@+id/colocker_rv"
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent" />
                         </LinearLayout>
+
                     </LinearLayout>
 
                     <LinearLayout
-                        android:id="@+id/select_colocker_layout"
+                        android:id="@+id/no_selected_member_layout"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:background="@drawable/home_card_bg"
+                        android:background="@drawable/card_white_bg"
+                        android:gravity="center"
                         android:orientation="vertical">
 
+                        <ImageView
+                            android:layout_width="80dp"
+                            android:layout_height="80dp"
+                            android:src="@drawable/icon_add_box" />
+
                         <TextView
-                            android:layout_width="match_parent"
+                            android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
                             android:paddingHorizontal="20dp"
                             android:paddingVertical="10dp"
-                            android:text="@string/colocker"
+                            android:text="@string/please_select_member"
                             android:textColor="@color/black"
                             android:textSize="24sp" />
-
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
-
-                        <androidx.recyclerview.widget.RecyclerView
-                            android:id="@+id/colocker_rv"
-                            android:layout_width="wrap_content"
-                            android:layout_height="match_parent" />
                     </LinearLayout>
+                </FrameLayout>
+            </LinearLayout>
 
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/no_selected_member_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
-
-                    <ImageView
-                        android:layout_width="80dp"
-                        android:layout_height="80dp"
-                        android:src="@drawable/icon_add_box" />
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/please_select_member"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
-                </LinearLayout>
-            </FrameLayout>
         </LinearLayout>
 
         <LinearLayout

+ 157 - 148
app/src/main/res/layout/fragment_create_sop_job.xml

@@ -108,8 +108,8 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="20dp"
                 android:layout_marginLeft="36dp"
+                android:layout_marginTop="20dp"
                 android:gravity="center_vertical"
                 android:orientation="horizontal"
                 android:paddingHorizontal="16dp">
@@ -170,215 +170,224 @@
         </LinearLayout>
 
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
 
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_weight="1"
+                android:layout_marginVertical="10dp"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-            </LinearLayout>
+                    android:orientation="horizontal">
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                </LinearLayout>
 
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/point_rv"
+                <View
                     android:layout_width="match_parent"
-                    android:layout_height="240dp"
-                    android:paddingBottom="10dp" />
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
-                    android:id="@+id/no_selected_point_layout"
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
+                    android:layout_height="match_parent">
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
+                    <androidx.recyclerview.widget.RecyclerView
+                        android:id="@+id/point_rv"
+                        android:layout_width="match_parent"
+                        android:layout_height="240dp"
+                        android:paddingBottom="10dp" />
+
+                    <LinearLayout
+                        android:id="@+id/no_selected_point_layout"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:background="@drawable/card_white_bg"
                         android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/show_points_when_selected_sop"
-                        android:textColor="@color/black"
-                        android:textSize="20sp" />
-                </LinearLayout>
-            </FrameLayout>
+                        android:orientation="vertical">
 
-        </LinearLayout>
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/show_points_when_selected_sop"
+                            android:textColor="@color/black"
+                            android:textSize="20sp" />
+                    </LinearLayout>
+                </FrameLayout>
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_weight="1"
+                android:layout_marginVertical="10dp"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:id="@+id/select_member_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-            <FrameLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                <LinearLayout
+                <FrameLayout
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:gravity="center"
-                    android:orientation="horizontal">
+                    android:layout_height="match_parent">
 
                     <LinearLayout
-                        android:layout_width="wrap_content"
+                        android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:background="@drawable/home_card_bg"
-                        android:orientation="vertical">
+                        android:gravity="center"
+                        android:orientation="horizontal">
 
-                        <TextView
+                        <LinearLayout
                             android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:gravity="center"
-                            android:paddingHorizontal="20dp"
-                            android:paddingVertical="10dp"
-                            android:text="@string/locker"
-                            android:textColor="@color/black"
-                            android:textSize="24sp" />
+                            android:layout_height="match_parent"
+                            android:background="@drawable/home_card_bg"
+                            android:orientation="vertical">
 
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/locker"
+                                android:textColor="@color/black"
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <LinearLayout
+                                android:layout_width="match_parent"
+                                android:layout_height="match_parent"
+                                android:gravity="center"
+                                android:orientation="vertical"
+                                android:paddingBottom="10dp">
+
+                                <ImageView
+                                    android:layout_width="50dp"
+                                    android:layout_height="50dp"
+                                    android:layout_marginTop="10dp"
+                                    android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                    android:tint="@color/black" />
+
+                                <TextView
+                                    android:id="@+id/locker_name"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:gravity="center"
+                                    android:textColor="@color/black"
+                                    android:textSize="20sp" />
+                            </LinearLayout>
+                        </LinearLayout>
 
                         <LinearLayout
+                            android:id="@+id/select_colocker_layout"
                             android:layout_width="match_parent"
                             android:layout_height="match_parent"
-                            android:gravity="center"
-                            android:paddingBottom="10dp"
+                            android:layout_weight="1"
+                            android:background="@drawable/home_card_bg"
                             android:orientation="vertical">
 
-                            <ImageView
-                                android:layout_width="50dp"
-                                android:layout_height="50dp"
-                                android:layout_marginTop="10dp"
-                                android:src="@mipmap/icon_data_manage_menu_user_manage"
-                                android:tint="@color/black" />
-
                             <TextView
-                                android:id="@+id/locker_name"
-                                android:layout_width="wrap_content"
+                                android:layout_width="match_parent"
                                 android:layout_height="wrap_content"
                                 android:gravity="center"
+                                android:paddingHorizontal="20dp"
+                                android:paddingVertical="10dp"
+                                android:text="@string/colocker"
                                 android:textColor="@color/black"
-                                android:textSize="20sp" />
+                                android:textSize="24sp" />
+
+                            <View
+                                android:layout_width="match_parent"
+                                android:layout_height="1dp"
+                                android:background="@color/black" />
+
+                            <androidx.recyclerview.widget.RecyclerView
+                                android:id="@+id/colocker_rv"
+                                android:layout_width="wrap_content"
+                                android:layout_height="match_parent" />
                         </LinearLayout>
+
                     </LinearLayout>
 
                     <LinearLayout
-                        android:id="@+id/select_colocker_layout"
+                        android:id="@+id/no_selected_member_layout"
                         android:layout_width="match_parent"
                         android:layout_height="match_parent"
-                        android:layout_weight="1"
-                        android:background="@drawable/home_card_bg"
+                        android:background="@drawable/card_white_bg"
+                        android:gravity="center"
                         android:orientation="vertical">
 
                         <TextView
-                            android:layout_width="match_parent"
+                            android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
                             android:paddingHorizontal="20dp"
                             android:paddingVertical="10dp"
-                            android:text="@string/colocker"
+                            android:text="@string/show_member_when_selected_sop"
                             android:textColor="@color/black"
-                            android:textSize="24sp" />
-
-                        <View
-                            android:layout_width="match_parent"
-                            android:layout_height="1dp"
-                            android:background="@color/black" />
-
-                        <androidx.recyclerview.widget.RecyclerView
-                            android:id="@+id/colocker_rv"
-                            android:layout_width="wrap_content"
-                            android:layout_height="match_parent" />
+                            android:textSize="20sp" />
                     </LinearLayout>
-
-                </LinearLayout>
-
-                <LinearLayout
-                    android:id="@+id/no_selected_member_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/card_white_bg"
-                    android:gravity="center"
-                    android:orientation="vertical">
-
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/show_member_when_selected_sop"
-                        android:textColor="@color/black"
-                        android:textSize="20sp" />
-                </LinearLayout>
-            </FrameLayout>
+                </FrameLayout>
+            </LinearLayout>
         </LinearLayout>
 
         <LinearLayout

+ 138 - 129
app/src/main/res/layout/fragment_edit_job.xml

@@ -181,178 +181,187 @@
         </LinearLayout>
 
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
 
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-                <TextView
-                    android:id="@+id/select_point_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:id="@+id/select_point_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/point_rv"
-                android:layout_width="match_parent"
-                android:layout_height="240dp"
-                android:paddingBottom="10dp" />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-        </LinearLayout>
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/point_rv"
+                    android:layout_width="match_parent"
+                    android:layout_height="240dp"
+                    android:paddingBottom="10dp" />
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    android:orientation="horizontal">
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
-
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:gravity="center"
-                android:orientation="horizontal">
-
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
                     <TextView
+                        android:id="@+id/select_member_tv"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:gravity="center"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
                         android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/locker"
+                        android:text="@string/select"
                         android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        android:textSize="20sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:orientation="horizontal">
 
                     <LinearLayout
-                        android:layout_width="match_parent"
+                        android:layout_width="wrap_content"
                         android:layout_height="match_parent"
-                        android:gravity="center"
-                        android:orientation="vertical"
-                        android:paddingBottom="10dp">
-
-                        <ImageView
-                            android:layout_width="50dp"
-                            android:layout_height="50dp"
-                            android:layout_marginTop="10dp"
-                            android:src="@mipmap/icon_data_manage_menu_user_manage"
-                            android:tint="@color/black" />
+                        android:background="@drawable/home_card_bg"
+                        android:orientation="vertical">
 
                         <TextView
-                            android:id="@+id/locker_name"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/locker"
                             android:textColor="@color/black"
-                            android:textSize="20sp" />
-                    </LinearLayout>
-                </LinearLayout>
+                            android:textSize="24sp" />
 
-                <LinearLayout
-                    android:id="@+id/select_colocker_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/colocker"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:gravity="center"
+                            android:orientation="vertical"
+                            android:paddingBottom="10dp">
+
+                            <ImageView
+                                android:layout_width="50dp"
+                                android:layout_height="50dp"
+                                android:layout_marginTop="10dp"
+                                android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                android:tint="@color/black" />
+
+                            <TextView
+                                android:id="@+id/locker_name"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:textColor="@color/black"
+                                android:textSize="20sp" />
+                        </LinearLayout>
+                    </LinearLayout>
 
-                    <View
+                    <LinearLayout
+                        android:id="@+id/select_colocker_layout"
                         android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:background="@drawable/home_card_bg"
+                        android:orientation="vertical">
 
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/colocker_rv"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent" />
-                </LinearLayout>
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/colocker"
+                            android:textColor="@color/black"
+                            android:textSize="24sp" />
 
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
+
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/colocker_rv"
+                            android:layout_width="wrap_content"
+                            android:layout_height="match_parent" />
+                    </LinearLayout>
+
+                </LinearLayout>
             </LinearLayout>
         </LinearLayout>
 
@@ -364,7 +373,7 @@
 
             <View
                 android:layout_width="0dp"
-                android:layout_height="wrap_content"
+                android:layout_height="1dp"
                 android:layout_weight="1" />
 
             <TextView

+ 135 - 126
app/src/main/res/layout/fragment_edit_sop.xml

@@ -169,178 +169,187 @@
         </LinearLayout>
 
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
 
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-                <TextView
-                    android:id="@+id/select_point_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                    <TextView
+                        android:id="@+id/select_point_tv"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
+                        android:paddingHorizontal="20dp"
+                        android:text="@string/select"
+                        android:textColor="@color/black"
+                        android:textSize="20sp" />
+                </LinearLayout>
 
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/point_rv"
-                android:layout_width="match_parent"
-                android:layout_height="240dp"
-                android:paddingBottom="10dp" />
 
-        </LinearLayout>
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/point_rv"
+                    android:layout_width="match_parent"
+                    android:layout_height="240dp"
+                    android:paddingBottom="10dp" />
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
-
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:gravity="center"
-                android:orientation="horizontal">
+                    android:orientation="horizontal">
 
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
                     <TextView
+                        android:id="@+id/select_member_tv"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:gravity="center"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
                         android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/locker"
+                        android:text="@string/select"
                         android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:orientation="horizontal">
 
                     <LinearLayout
-                        android:layout_width="match_parent"
+                        android:layout_width="wrap_content"
                         android:layout_height="match_parent"
-                        android:gravity="center"
-                        android:paddingBottom="10dp"
+                        android:background="@drawable/home_card_bg"
                         android:orientation="vertical">
 
-                        <ImageView
-                            android:layout_width="50dp"
-                            android:layout_height="50dp"
-                            android:layout_marginTop="10dp"
-                            android:src="@mipmap/icon_data_manage_menu_user_manage"
-                            android:tint="@color/black" />
-
                         <TextView
-                            android:id="@+id/locker_name"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/locker"
                             android:textColor="@color/black"
-                            android:textSize="20sp" />
-                    </LinearLayout>
-                </LinearLayout>
+                            android:textSize="24sp" />
 
-                <LinearLayout
-                    android:id="@+id/select_colocker_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/colocker"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:gravity="center"
+                            android:orientation="vertical"
+                            android:paddingBottom="10dp">
+
+                            <ImageView
+                                android:layout_width="50dp"
+                                android:layout_height="50dp"
+                                android:layout_marginTop="10dp"
+                                android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                android:tint="@color/black" />
+
+                            <TextView
+                                android:id="@+id/locker_name"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:textColor="@color/black"
+                                android:textSize="20sp" />
+                        </LinearLayout>
+                    </LinearLayout>
 
-                    <View
+                    <LinearLayout
+                        android:id="@+id/select_colocker_layout"
                         android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:background="@drawable/home_card_bg"
+                        android:orientation="vertical">
 
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/colocker_rv"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent" />
-                </LinearLayout>
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/colocker"
+                            android:textColor="@color/black"
+                            android:textSize="24sp" />
+
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
+
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/colocker_rv"
+                            android:layout_width="wrap_content"
+                            android:layout_height="match_parent" />
+                    </LinearLayout>
 
+                </LinearLayout>
             </LinearLayout>
         </LinearLayout>
 

+ 125 - 116
app/src/main/res/layout/fragment_edit_sop_job.xml

@@ -182,166 +182,175 @@
         </LinearLayout>
 
         <LinearLayout
-            android:id="@+id/point_info_layout"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
+            android:layout_height="0dp"
+            android:layout_weight="1"
             android:orientation="vertical">
 
             <LinearLayout
+                android:id="@+id/point_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/point_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
+                    android:orientation="horizontal">
 
-            </LinearLayout>
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/point_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
+                </LinearLayout>
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/point_rv"
-                android:layout_width="match_parent"
-                android:layout_height="240dp"
-                android:paddingBottom="10dp" />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
 
-        </LinearLayout>
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/point_rv"
+                    android:layout_width="match_parent"
+                    android:layout_height="240dp"
+                    android:paddingBottom="10dp" />
 
-        <LinearLayout
-            android:id="@+id/member_info_layout"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="20dp"
-            android:layout_marginVertical="10dp"
-            android:background="@drawable/home_card_bg"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
+            </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/member_info_layout"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:layout_marginHorizontal="20dp"
+                android:layout_marginVertical="10dp"
+                android:layout_weight="1"
+                android:background="@drawable/home_card_bg"
+                android:gravity="center_vertical"
+                android:orientation="vertical">
 
-                <TextView
+                <LinearLayout
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_weight="1"
-                    android:text="@string/member_info_title"
-                    android:textColor="@color/black"
-                    android:textSize="24sp" />
-
-                <TextView
-                    android:id="@+id/select_member_tv"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginLeft="10dp"
-                    android:layout_marginRight="10dp"
-                    android:background="@drawable/common_dialog_btn"
-                    android:paddingHorizontal="20dp"
-                    android:text="@string/select"
-                    android:textColor="@color/black"
-                    android:textSize="20sp" />
-            </LinearLayout>
+                    android:orientation="horizontal">
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:background="@color/black" />
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:gravity="center"
-                android:orientation="horizontal">
-
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="match_parent"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_weight="1"
+                        android:text="@string/member_info_title"
+                        android:textColor="@color/black"
+                        android:textSize="24sp" />
 
                     <TextView
+                        android:id="@+id/select_member_tv"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:gravity="center"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp"
+                        android:background="@drawable/common_dialog_btn"
                         android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/locker"
+                        android:text="@string/select"
                         android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        android:textSize="20sp" />
+                </LinearLayout>
 
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/black" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:gravity="center"
+                    android:orientation="horizontal">
 
                     <LinearLayout
-                        android:layout_width="match_parent"
+                        android:layout_width="wrap_content"
                         android:layout_height="match_parent"
-                        android:gravity="center"
-                        android:orientation="vertical"
-                        android:paddingBottom="10dp">
-
-                        <ImageView
-                            android:layout_width="50dp"
-                            android:layout_height="50dp"
-                            android:layout_marginTop="10dp"
-                            android:src="@mipmap/icon_data_manage_menu_user_manage"
-                            android:tint="@color/black" />
+                        android:background="@drawable/home_card_bg"
+                        android:orientation="vertical">
 
                         <TextView
-                            android:id="@+id/locker_name"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
                             android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/locker"
                             android:textColor="@color/black"
-                            android:textSize="20sp" />
-                    </LinearLayout>
-                </LinearLayout>
+                            android:textSize="24sp" />
 
-                <LinearLayout
-                    android:id="@+id/select_colocker_layout"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:background="@drawable/home_card_bg"
-                    android:orientation="vertical">
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
 
-                    <TextView
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:paddingHorizontal="20dp"
-                        android:paddingVertical="10dp"
-                        android:text="@string/colocker"
-                        android:textColor="@color/black"
-                        android:textSize="24sp" />
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:gravity="center"
+                            android:orientation="vertical"
+                            android:paddingBottom="10dp">
+
+                            <ImageView
+                                android:layout_width="50dp"
+                                android:layout_height="50dp"
+                                android:layout_marginTop="10dp"
+                                android:src="@mipmap/icon_data_manage_menu_user_manage"
+                                android:tint="@color/black" />
+
+                            <TextView
+                                android:id="@+id/locker_name"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:gravity="center"
+                                android:textColor="@color/black"
+                                android:textSize="20sp" />
+                        </LinearLayout>
+                    </LinearLayout>
 
-                    <View
+                    <LinearLayout
+                        android:id="@+id/select_colocker_layout"
                         android:layout_width="match_parent"
-                        android:layout_height="1dp"
-                        android:background="@color/black" />
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:background="@drawable/home_card_bg"
+                        android:orientation="vertical">
 
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/colocker_rv"
-                        android:layout_width="wrap_content"
-                        android:layout_height="match_parent" />
-                </LinearLayout>
+                        <TextView
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:paddingHorizontal="20dp"
+                            android:paddingVertical="10dp"
+                            android:text="@string/colocker"
+                            android:textColor="@color/black"
+                            android:textSize="24sp" />
+
+                        <View
+                            android:layout_width="match_parent"
+                            android:layout_height="1dp"
+                            android:background="@color/black" />
+
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/colocker_rv"
+                            android:layout_width="wrap_content"
+                            android:layout_height="match_parent" />
+                    </LinearLayout>
 
+                </LinearLayout>
             </LinearLayout>
         </LinearLayout>
 

+ 2 - 2
app/src/main/res/layout/fragment_home.xml

@@ -277,7 +277,7 @@
                             android:background="@drawable/bg_common_input"
                             android:gravity="center_vertical"
                             android:paddingHorizontal="10dp"
-                            android:paddingVertical="5dp"
+                            android:paddingVertical="2dp"
                             android:textSize="22sp"
                             tools:text="2025-04-01 12:00" />
 
@@ -297,7 +297,7 @@
                             android:background="@drawable/bg_common_input"
                             android:gravity="center_vertical"
                             android:paddingHorizontal="10dp"
-                            android:paddingVertical="5dp"
+                            android:paddingVertical="2dp"
                             android:textSize="22sp"
                             tools:text="2025-04-01 12:00" />
                     </LinearLayout>

+ 91 - 10
app/src/main/res/layout/fragment_job_execute.xml

@@ -99,15 +99,96 @@
             android:background="@drawable/common_card_bg"
             app:maxHeight="240dp" />
 
-        <View
-            android:layout_width="1dp"
+        <LinearLayout
+            android:id="@+id/colocker_layout"
+            android:layout_width="match_parent"
             android:layout_height="0dp"
+            android:layout_marginHorizontal="20dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginBottom="10dp"
+            android:layout_weight="1"
+            android:divider="@drawable/divider_table"
+            android:orientation="vertical"
+            android:showDividers="middle"
+            android:visibility="gone">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="50dp"
+                android:background="@drawable/common_card_bg"
+                android:divider="@drawable/divider_table"
+                android:showDividers="middle">
+
+                <TextView
+                    android:id="@+id/wait_to_colock"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="@string/wait_to_colock"
+                    android:textSize="18sp" />
+
+                <TextView
+                    android:id="@+id/already_colock"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="@string/already_colock"
+                    android:textSize="18sp" />
+
+                <TextView
+                    android:id="@+id/already_uncolock"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    android:text="@string/already_uncolock"
+                    android:textSize="18sp" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/common_card_bg"
+                android:divider="@drawable/divider_table"
+                android:orientation="horizontal"
+                android:showDividers="middle">
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/wait_to_colock_rv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:padding="10dp"
+                    android:layout_weight="1" />
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/already_colock_rv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:padding="10dp"
+                    android:layout_weight="1" />
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/already_uncolock_rv"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:padding="10dp"
+                    android:layout_weight="1" />
+            </LinearLayout>
+        </LinearLayout>
+
+        <View
+            android:id="@+id/space_view"
+            android:layout_width="0dp"
+            android:layout_height="1dp"
             android:layout_weight="1" />
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="right"
+            android:minHeight="60dp"
             android:orientation="horizontal"
             android:padding="10dp">
 
@@ -121,8 +202,8 @@
                 android:paddingHorizontal="10dp"
                 android:text="@string/go_locking"
                 android:textColor="@color/white"
-                android:visibility="gone"
-                android:textSize="20sp" />
+                android:textSize="20sp"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/to_unlock"
@@ -134,8 +215,8 @@
                 android:paddingHorizontal="10dp"
                 android:text="@string/go_unlocking"
                 android:textColor="@color/white"
-                android:visibility="gone"
-                android:textSize="20sp" />
+                android:textSize="20sp"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/cancel_job"
@@ -146,8 +227,8 @@
                 android:paddingHorizontal="10dp"
                 android:text="@string/cancel_the_job"
                 android:textColor="@color/black"
-                android:visibility="gone"
-                android:textSize="20sp" />
+                android:textSize="20sp"
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/finish_job"
@@ -158,8 +239,8 @@
                 android:paddingHorizontal="10dp"
                 android:text="@string/finish_the_job"
                 android:textColor="@color/black"
-                android:visibility="gone"
-                android:textSize="20sp" />
+                android:textSize="20sp"
+                android:visibility="gone" />
         </LinearLayout>
     </LinearLayout>
 </layout>

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

@@ -56,7 +56,7 @@
             android:paddingVertical="10dp">
 
             <TextView
-                android:id="@+id/delete_sop"
+                android:id="@+id/delete"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="10dp"

+ 99 - 0
app/src/main/res/layout/fragment_locked_point.xml

@@ -0,0 +1,99 @@
+<?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="20dp"
+        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="10dp"
+            android:paddingVertical="5dp">
+
+            <ImageView
+                android:layout_width="20dp"
+                android:layout_height="20dp"
+                android:src="@mipmap/icon_data_manage_menu_user_manage" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:layout_weight="1"
+                android:text="@string/locked_points_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="10dp"
+                android:background="@drawable/common_dialog_btn"
+                android:paddingHorizontal="20dp"
+                android:text="@string/back"
+                android:textColor="@color/black"
+                android:textSize="20sp" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="@color/black" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:layout_marginHorizontal="20dp"
+            android:layout_marginTop="10dp"
+            android:background="@drawable/common_card_bg"
+            android:divider="@drawable/divider_table"
+            android:showDividers="middle">
+
+            <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="18sp" />
+
+            <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="18sp" />
+
+            <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="18sp" />
+        </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="20dp"
+            android:layout_marginBottom="10dp">
+
+            <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>

+ 28 - 0
app/src/main/res/layout/item_job_execute_colock.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/bg_btn_job_execute_normal"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:padding="5dp">
+
+        <ImageView
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:src="@drawable/icon_select_member"
+            android:tint="@color/black" />
+
+        <TextView
+            android:id="@+id/name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:textSize="12sp"
+            tools:text="王俊杰" />
+    </LinearLayout>
+</layout>

+ 34 - 0
app/src/main/res/layout/item_locked_points_point.xml

@@ -0,0 +1,34 @@
+<?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="50dp"
+        android:divider="@drawable/divider_table"
+        android:showDividers="middle">
+
+        <TextView
+            android:id="@+id/point_name"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="18sp" />
+
+        <TextView
+            android:id="@+id/point_function"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="18sp" />
+
+        <TextView
+            android:id="@+id/workstation"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:textSize="18sp" />
+    </LinearLayout>
+</layout>

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

@@ -160,4 +160,13 @@
     <string name="update_role_failed">Update role failed</string>
     <string name="update_user_succeed">Update user succeed</string>
     <string name="update_user_failed">Update user failed</string>
+    <string name="locked_points_title">Locked points</string>
+    <string name="all">ALL</string>
+    <string name="wait_to_colock">Wait to colock(%1$d)</string>
+    <string name="already_colock">Already colock(%1$d)</string>
+    <string name="already_uncolock">Already uncolock(%1$d)</string>
+    <string name="job_manage_delete_succeed">Delete selected job succeed</string>
+    <string name="job_manage_delete_failed">Delete selected job failed</string>
+    <string name="please_select_job">Please select job</string>
+    <string name="check_delete_job">Do you want to delete selected job</string>
 </resources>

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

@@ -160,4 +160,13 @@
     <string name="update_role_failed">角色更新试下</string>
     <string name="update_user_succeed">用户更新成功</string>
     <string name="update_user_failed">用户更新失败</string>
+    <string name="locked_points_title">锁定中的点位</string>
+    <string name="all">全部</string>
+    <string name="wait_to_colock">待共锁(%1$d)</string>
+    <string name="already_colock">已共锁(%1$d)</string>
+    <string name="already_uncolock">已解除共锁(%1$d)</string>
+    <string name="job_manage_delete_succeed">删除选中的作业成功</string>
+    <string name="job_manage_delete_failed">无法删除选中的作业</string>
+    <string name="please_select_job">请选择作业</string>
+    <string name="check_delete_job">您确认要删除作业吗</string>
 </resources>

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

@@ -159,4 +159,13 @@
     <string name="update_role_failed">角色更新试下</string>
     <string name="update_user_succeed">用户更新成功</string>
     <string name="update_user_failed">用户更新失败</string>
+    <string name="locked_points_title">锁定中的点位</string>
+    <string name="all">全部</string>
+    <string name="wait_to_colock">待共锁(%1$d)</string>
+    <string name="already_colock">已共锁(%1$d)</string>
+    <string name="already_uncolock">已解除共锁(%1$d)</string>
+    <string name="job_manage_delete_succeed">删除选中的作业成功</string>
+    <string name="job_manage_delete_failed">无法删除选中的作业</string>
+    <string name="please_select_job">请选择作业</string>
+    <string name="check_delete_job">您确认要删除作业吗</string>
 </resources>

+ 1 - 0
data/src/main/java/com/grkj/data/dao/IsSopDao.kt

@@ -101,6 +101,7 @@ interface IsSopDao {
             WHERE su.del_flag = 0 and isu.sop_id = :sopId
             GROUP BY
               su.user_id,
+              isu.user_role,
               su.nick_name,
               su.status
     """

+ 39 - 7
data/src/main/java/com/grkj/data/dao/JobTicketDao.kt

@@ -159,6 +159,7 @@ interface JobTicketDao {
             WHERE su.del_flag = 0 and ijtu.ticket_id = :ticketId
             GROUP BY
               su.user_id,
+              ijtu.user_role,
               su.nick_name,
               su.status
     """
@@ -241,7 +242,7 @@ interface JobTicketDao {
     /**
      * 根据作业id获取作业人员详细数据
      */
-    @Query("select * from is_job_ticket_user where ticket_id = :ticketId")
+    @Query("select ijtu.*,su.nick_name as nickName from is_job_ticket_user ijtu left join sys_user su on ijtu.user_id = su.user_id where ticket_id = :ticketId")
     fun getJobTicketUserDataByTicketId(ticketId: Long): List<IsJobTicketUserDataVo>
 
     /**
@@ -268,16 +269,47 @@ interface JobTicketDao {
     /**
      * 获取工作中的作业数量
      */
-    @Query("select count(1) from is_job_ticket where ticket_status in ('1','2','3','4') " +
-            "AND (:workstationId IS NULL OR trim(:workstationId) = '' OR workstation_id = :workstationId) " +
-            "AND (trim(:lockMode) = '' OR lock_mode like '%'|| :lockMode ||'%')")
+    @Query(
+        "select count(1) from is_job_ticket where ticket_status in ('1','2','3','4') " +
+                "AND (:workstationId IS NULL OR trim(:workstationId) = '' OR workstation_id = :workstationId) " +
+                "AND (trim(:lockMode) = '' OR lock_mode like '%'|| :lockMode ||'%')"
+    )
     fun getInProgressJobSize(workstationId: Long?, lockMode: String): Int
 
     /**
      * 获取所有作业数量
      */
-    @Query("select count(1) from is_job_ticket where (:workstationId IS NULL OR trim(:workstationId) = '' OR workstation_id = :workstationId) " +
-            "AND (:startTime IS NULL OR trim(:startTime) = '' OR (create_time >= :startTime OR update_time >= :startTime)) " +
-            "AND (:endTime IS NULL OR trim(:endTime) = '' OR (create_time <= :endTime OR update_time <= :endTime)) ")
+    @Query(
+        "select count(1) from is_job_ticket where (:workstationId IS NULL OR trim(:workstationId) = '' OR workstation_id = :workstationId) " +
+                "AND (:startTime IS NULL OR trim(:startTime) = '' OR (create_time >= :startTime OR update_time >= :startTime)) " +
+                "AND (:endTime IS NULL OR trim(:endTime) = '' OR (create_time <= :endTime OR update_time <= :endTime)) "
+    )
     fun getAllJobSize(workstationId: Long?, startTime: String?, endTime: String?): Int
+
+    /**
+     * 获取锁定中的点位
+     */
+    @Query(
+        """
+        select iip.point_id as pointId,
+        iip.point_name as pointName,
+        iip.remark as pointFunction,
+        iw.workstation_name as workstationName,
+        irt.rfid as rfidToken
+        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
+        left join is_workstation iw on iip.workstation_id=iw.workstation_id
+        where ijtp.point_status = "1"
+        order by ijtp.update_time desc
+        limit :size offset :offset
+    """
+    )
+    fun getLockedPointsData(size: Int, offset: Int): List<PointManageVo>
+
+    /**
+     * 更新共锁人状态
+     */
+    @Update
+    fun colockerStatusChange(jobTicketUser: IsJobTicketUser)
 }

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

@@ -5,4 +5,6 @@ import com.grkj.data.model.dos.IsJobTicketUser
 /**
  * 作业人员详细数据实体
  */
-class IsJobTicketUserDataVo : IsJobTicketUser()
+class IsJobTicketUserDataVo : IsJobTicketUser() {
+    var nickName: String = ""
+}

+ 11 - 0
data/src/main/java/com/grkj/data/repository/IJobTicketRepository.kt

@@ -127,6 +127,7 @@ interface IJobTicketRepository {
      * 取消作业
      */
     fun cancelJob(ticketId: Long)
+
     /**
      * 结束作业
      */
@@ -146,4 +147,14 @@ interface IJobTicketRepository {
      * 获取全部作业数量
      */
     fun getAllJobSize(workstationId: Long?, startTime: String, endTime: String): Int
+
+    /**
+     * 获取锁定中的点位
+     */
+    fun getLockedPointsData(current: Int, size: Int): List<PointManageVo>
+
+    /**
+     * 更新共锁人状态
+     */
+    fun colockerStatusChange(jobTicketUserDataVo: IsJobTicketUserDataVo)
 }

+ 10 - 0
data/src/main/java/com/grkj/data/repository/impl/JobTicketRepository.kt

@@ -318,4 +318,14 @@ class JobTicketRepository @Inject constructor(val jobTicketDao: JobTicketDao) :
     override fun getInProgressJobSize(workstationId: Long?, selectedLockMode: String): Int {
         return jobTicketDao.getInProgressJobSize(workstationId,selectedLockMode)
     }
+
+    override fun getLockedPointsData(current: Int, size: Int): List<PointManageVo> {
+        return jobTicketDao.getLockedPointsData(size,current*size)
+    }
+
+    override fun colockerStatusChange(jobTicketUserDataVo: IsJobTicketUserDataVo) {
+        val jobTicketUser = IsJobTicketUser()
+        BeanUtils.copyData<IsJobTicketUser>(jobTicketUserDataVo,jobTicketUser)
+        jobTicketDao.colockerStatusChange(jobTicketUser)
+    }
 }

+ 1 - 0
ui-base/src/main/java/com/grkj/ui_base/dialog/LoadingDialog.kt

@@ -37,6 +37,7 @@ class LoadingDialog : OnBindView<CustomDialog>(R.layout.common_dialog_loading_pr
         @JvmStatic
         fun show(msg: String? = null) {
             ThreadUtils.runOnMain {
+                loadingDialog?.dismiss()
                 loadingDialog = CustomDialog.show(LoadingDialog().apply {
                     setMessage(msg)
                 }, CustomDialog.ALIGN.CENTER)