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

refactor(更新)
- 调整默认区域和流程模式的MMKV存储Key的生成方式
- 修复用户管理页面筛选功能异常的问题
- 作业创建和SOP创建页面默认选中上次设置的区域和流程模式
- 区域管理和流程模式管理页面,编辑时可以同步设置默认选项

周文健 8 месяцев назад
Родитель
Сommit
ae9303d719

+ 21 - 4
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/UpdateWorkstationDialog.kt

@@ -1,6 +1,8 @@
 package com.grkj.iscs.features.main.dialog.data_manage
 
 import android.view.View
+import com.grkj.data.data.MMKVConstants
+import com.grkj.data.data.MainDomainData
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.DialogAddWorkstationBinding
 import com.grkj.ui_base.utils.CommonUtils
@@ -8,6 +10,7 @@ import com.grkj.ui_base.utils.extension.tip
 import com.kongzue.dialogx.dialogs.CustomDialog
 import com.kongzue.dialogx.dialogs.PopTip
 import com.kongzue.dialogx.interfaces.OnBindView
+import com.sik.sikcore.extension.getMMKVData
 import com.sik.sikcore.extension.setDebouncedClickListener
 
 /**
@@ -16,7 +19,9 @@ import com.sik.sikcore.extension.setDebouncedClickListener
  * UpdateWorkstationDialog.show { name -> /* handle */ }
  */
 class UpdateWorkstationDialog(
-    val workstationName: String, private val onConfirm: (String, Boolean, CustomDialog) -> Unit
+    val workstationId: Long,
+    val workstationName: String,
+    private val onConfirm: (String, Boolean, CustomDialog) -> Unit
 ) : OnBindView<CustomDialog>(R.layout.dialog_add_workstation) {
 
     private lateinit var binding: DialogAddWorkstationBinding
@@ -26,6 +31,10 @@ class UpdateWorkstationDialog(
         dialog?.isCancelable = false
         dialog?.setMaskColor(CommonUtils.getColor(com.grkj.ui_base.R.attr.scrim))
         binding.workstationNameEt.setText(workstationName)
+        binding.setDefault.isChecked =
+            MainDomainData.defaultWorkstationId.getMMKVData(
+                0L
+            ) == workstationId
         binding.cancel.setDebouncedClickListener { dialog?.dismiss() }
         binding.closeIv.setDebouncedClickListener { dialog?.dismiss() }
         binding.confirm.setDebouncedClickListener {
@@ -33,7 +42,11 @@ class UpdateWorkstationDialog(
             if (name.isEmpty()) {
                 PopTip.build().tip(CommonUtils.getStr("please_input_workstation_name"))
             } else {
-                onConfirm(name, binding.setDefault.isChecked, dialog)
+                onConfirm(
+                    name,
+                    binding.setDefault.isChecked,
+                    dialog
+                )
             }
         }
     }
@@ -43,9 +56,13 @@ class UpdateWorkstationDialog(
          * 显示新增区域对话框
          */
         @JvmStatic
-        fun show(workstationName: String, onConfirm: (String, Boolean, CustomDialog) -> Unit) {
+        fun show(
+            workstationId: Long,
+            workstationName: String,
+            onConfirm: (String, Boolean, CustomDialog) -> Unit
+        ) {
             CustomDialog.show(
-                UpdateWorkstationDialog(workstationName, onConfirm),
+                UpdateWorkstationDialog(workstationId, workstationName, onConfirm),
                 CustomDialog.ALIGN.CENTER
             )
         }

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

@@ -10,6 +10,7 @@ import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import com.grkj.data.data.MMKVConstants
+import com.grkj.data.data.MainDomainData
 import com.grkj.data.model.vo.WorkstationManageVo
 import com.grkj.iscs.R
 import com.grkj.iscs.databinding.FragmentWorkstationManageBinding
@@ -48,7 +49,10 @@ class WorkstationManageFragment : BaseFragment<FragmentWorkstationManageBinding>
                 showToast(CommonUtils.getStr("please_select_workstation"))
                 return@setDebouncedClickListener
             }
-            UpdateWorkstationDialog.show(viewModel.workstationManageData.first { it.isSelected }.workstationName) { data,setDefault, dialog ->
+            UpdateWorkstationDialog.show(
+                viewModel.workstationManageData.first { it.isSelected }.workstationId,
+                viewModel.workstationManageData.first { it.isSelected }.workstationName
+            ) { data, setDefault, dialog ->
                 viewModel.validateWorkstationData(data).observe(this) {
                     val updateWorkstation = viewModel.workstationManageData.first { it.isSelected }
                     updateWorkstation.workstationName = data
@@ -56,7 +60,7 @@ class WorkstationManageFragment : BaseFragment<FragmentWorkstationManageBinding>
                         dialog.dismiss()
                         if (it) {
                             if (setDefault) {
-                                MMKVConstants.KEY_DEFAULT_WORKSTATION_ID.saveMMKVData(it)
+                                MainDomainData.defaultWorkstationId.saveMMKVData(updateWorkstation.workstationId)
                             }
                             TipDialog.show(
                                 title = CommonUtils.getStr("action_succeed"),
@@ -97,7 +101,7 @@ class WorkstationManageFragment : BaseFragment<FragmentWorkstationManageBinding>
                         dialog.dismiss()
                         if (it != -1L) {
                             if (setDefault) {
-                                MMKVConstants.KEY_DEFAULT_WORKSTATION_ID.saveMMKVData(it)
+                                MainDomainData.defaultWorkstationId.saveMMKVData(it)
                             }
                             TipDialog.show(
                                 title = CommonUtils.getStr("action_succeed"),

+ 84 - 129
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/CreateJobFragment.kt

@@ -15,6 +15,7 @@ import com.google.android.flexbox.FlexDirection
 import com.google.android.flexbox.FlexboxLayoutManager
 import com.google.android.flexbox.JustifyContent
 import com.grkj.data.data.MMKVConstants
+import com.grkj.data.data.MainDomainData
 import com.grkj.data.data.Type
 import com.grkj.data.enums.IsolationPointPowerTypeEnum
 import com.grkj.data.model.dos.WorkflowStep
@@ -57,10 +58,8 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
     private val viewModel: JobViewModel by viewModels()
     private var selectedModeId: Long? = null
     private var selectedWorkstationId: Long? = null
-    private var selectedPointData: List<JobTicketGroupDataVo<JobPointVo>> =
-        mutableListOf()
-    private var selectedLockerData: List<JobTicketGroupDataVo<JobUserVo>> =
-        mutableListOf()
+    private var selectedPointData: List<JobTicketGroupDataVo<JobPointVo>> = mutableListOf()
+    private var selectedLockerData: List<JobTicketGroupDataVo<JobUserVo>> = mutableListOf()
     private var selectedColockerData: List<JobUserVo> = mutableListOf()
     override fun getLayoutId(): Int {
         return R.layout.fragment_create_job
@@ -153,27 +152,20 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                 showToast(CommonUtils.getStr("please_select_job_workstation"))
                 return@setDebouncedClickListener
             }
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID,
-                    selectedWorkstationId!!
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
                 )
             GlobalDataTempStore.getInstance()
                 .saveData(DataTransferConstants.KEY_SELECTED_POINT_DATA, selectedPointData)
-            GlobalDataTempStore.getInstance()
-                .saveData(
+            GlobalDataTempStore.getInstance().saveData(
                     DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
                     CommonUtils.getStr("create_job_title").toString()
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
-                    "document.svg"
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA, "document.svg"
                 )
-            val isSaveSuccess = GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_IS_UNLOCK_FIRST,
-                    viewModel.isUnlockFirst
+            val isSaveSuccess = GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
                 )
             logger.info("是否保存成功:${isSaveSuccess}")
             navController.navigate(R.id.action_createJobFragment_to_selectPointFragment)
@@ -191,34 +183,24 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                 DataTransferConstants.KEY_CAN_SELECT_COLOCKER,
                 viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true
             )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID,
-                    selectedWorkstationId!!
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA,
-                    selectedLockerData
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA, selectedLockerData
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA,
-                    selectedColockerData
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
                 )
             GlobalDataTempStore.getInstance().saveData(
-                DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA,
-                selectedColockerData
+                DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
             )
-            GlobalDataTempStore.getInstance()
-                .saveData(
+            GlobalDataTempStore.getInstance().saveData(
                     DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
                     CommonUtils.getStr("create_job_title").toString()
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
-                    "document.svg"
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA, "document.svg"
                 )
             navController.navigate(R.id.action_createJobFragment_to_selectMemberFragment)
         }
@@ -227,20 +209,15 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                 showToast(CommonUtils.getStr("please_select_workflow_mode"))
                 return@setDebouncedClickListener
             }
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_WORKFLOW_SETTING_MODE_ID,
-                    selectedModeId ?: 0
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_WORKFLOW_SETTING_MODE_ID, selectedModeId ?: 0
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
+            GlobalDataTempStore.getInstance().saveData(
                     DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
                     CommonUtils.getStr("create_job_title").toString()
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
-                    "document.svg"
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA, "document.svg"
                 )
             navController.navigate(R.id.action_createJobFragment_to_workflowSettingFragment)
         }
@@ -249,27 +226,20 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                 showToast(CommonUtils.getStr("please_select_job_workstation"))
                 return@setDebouncedClickListener
             }
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID,
-                    selectedWorkstationId!!
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
                 )
             GlobalDataTempStore.getInstance()
                 .saveData(DataTransferConstants.KEY_SELECTED_POINT_DATA, selectedPointData)
-            GlobalDataTempStore.getInstance()
-                .saveData(
+            GlobalDataTempStore.getInstance().saveData(
                     DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
                     CommonUtils.getStr("create_job_title").toString()
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
-                    "document.svg"
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA, "document.svg"
                 )
-            val isSaveSuccess = GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_IS_UNLOCK_FIRST,
-                    viewModel.isUnlockFirst
+            val isSaveSuccess = GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
                 )
             logger.info("是否保存成功:${isSaveSuccess}")
             navController.navigate(R.id.action_createJobFragment_to_selectPointFragment)
@@ -288,30 +258,21 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                 DataTransferConstants.KEY_CAN_SELECT_COLOCKER,
                 viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true
             )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID,
-                    selectedWorkstationId!!
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA,
-                    selectedLockerData
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA, selectedLockerData
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA,
-                    selectedColockerData
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
+            GlobalDataTempStore.getInstance().saveData(
                     DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
                     CommonUtils.getStr("create_job_title").toString()
                 )
-            GlobalDataTempStore.getInstance()
-                .saveData(
-                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
-                    "document.svg"
+            GlobalDataTempStore.getInstance().saveData(
+                    DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA, "document.svg"
                 )
             navController.navigate(R.id.action_createJobFragment_to_selectMemberFragment)
         }
@@ -366,38 +327,42 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
         super.initData()
         viewModel.getWorkstationData().observe(this) {
             viewModel.getWorkflowModes().observe(this) {
-                val defaultWorkstationId = MMKVConstants.KEY_DEFAULT_WORKSTATION_ID.getMMKVData(0L)
-                val defaultWorkflowModeId = MMKVConstants.KEY_DEFAULT_WORKFLOW_ID.getMMKVData(0L)
-                if (defaultWorkstationId != 0L) {
-                    selectedWorkstationId = defaultWorkstationId
-                    fun findWorkstation(
-                        workstationData: List<WorkstationManageVo>,
-                        workstationId: Long
-                    ): WorkstationManageVo? {
-                        for (manageVo in workstationData) {
-                            return if (manageVo.workstationId == workstationId) {
-                                manageVo
-                            } else if (manageVo.hasChildren()) {
-                                findWorkstation(manageVo.children, workstationId)
-                            } else {
-                                null
-                            }
-                        }
-                        return null
-                    }
-                    binding.workstationTv.text =
-                        findWorkstation(
-                            viewModel.workstationData,
-                            defaultWorkstationId
-                        )?.workstationName
-                    selectedModeId = defaultWorkflowModeId
-                    binding.lockModeTv.text =
-                        viewModel.workflowModes.find { it.modeId == defaultWorkflowModeId }?.modeName
-                    if (selectedModeId != null) {
-                        refreshWorkflowMode()
+                setDefaultData()
+            }
+        }
+    }
+
+    /**
+     * 设置默认数据
+     */
+    private fun setDefaultData() {
+        val defaultWorkstationId = MainDomainData.defaultWorkstationId.getMMKVData(0L)
+        val defaultWorkflowModeId = MainDomainData.defaultWorkflowModeId.getMMKVData(0L)
+        if (defaultWorkstationId != 0L) {
+            selectedWorkstationId = defaultWorkstationId
+            fun findWorkstation(
+                workstationData: List<WorkstationManageVo>, workstationId: Long
+            ): WorkstationManageVo? {
+                for (manageVo in workstationData) {
+                    return if (manageVo.workstationId == workstationId) {
+                        manageVo
+                    } else if (manageVo.hasChildren()) {
+                        findWorkstation(manageVo.children, workstationId)
+                    } else {
+                        continue
                     }
                 }
+                return null
             }
+            binding.workstationTv.text = findWorkstation(
+                viewModel.workstationData, defaultWorkstationId
+            )?.workstationName
+        }
+        if (defaultWorkflowModeId != 0L) {
+            selectedModeId = defaultWorkflowModeId
+            binding.lockModeTv.text =
+                viewModel.workflowModes.find { it.modeId == defaultWorkflowModeId }?.modeName
+            refreshWorkflowMode()
         }
     }
 
@@ -449,8 +414,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                                 },
                                 onCancelClick = {
                                     navController.popBackStack()
-                                }
-                            )
+                                })
                         } else {
                             TipDialog.show(
                                 title = CommonUtils.getStr("action_failed"),
@@ -472,8 +436,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                         },
                         onCancelClick = {
                             navController.popBackStack()
-                        }
-                    )
+                        })
                 }
             } else {
                 TipDialog.show(
@@ -511,8 +474,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
             showToast(CommonUtils.getStr("select_locker"))
             return false
         }
-        if (viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true && selectedColockerData.isEmpty()
-        ) {
+        if (viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true && selectedColockerData.isEmpty()) {
             showToast(CommonUtils.getStr("select_coloker"))
             return false
         }
@@ -579,8 +541,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
         itemBinding.pointName.text = item.pointName
         itemBinding.pointIcon.isSelected = false
         itemBinding.pointIcon.loadSkinIcon(
-            IsolationPointPowerTypeEnum.values().find { it.name == item.powerType }?.icon
-                ?: ""
+            IsolationPointPowerTypeEnum.values().find { it.name == item.powerType }?.icon ?: ""
         )
     }
 
@@ -589,10 +550,8 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
         if (GlobalDataTempStore.getInstance()
                 .hasData(DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA)
         ) {
-            selectedLockerData = GlobalDataTempStore.getInstance()
-                .getData(
-                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA,
-                    Type.lockerGroupType
+            selectedLockerData = GlobalDataTempStore.getInstance().getData(
+                    DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA, Type.lockerGroupType
                 ) ?: listOf()
         }
 
@@ -606,10 +565,8 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
         if (GlobalDataTempStore.getInstance()
                 .hasData(DataTransferConstants.KEY_SELECTED_POINT_DATA)
         ) {
-            selectedPointData = GlobalDataTempStore.getInstance()
-                .getData(
-                    DataTransferConstants.KEY_SELECTED_POINT_DATA,
-                    Type.pointGroupType
+            selectedPointData = GlobalDataTempStore.getInstance().getData(
+                    DataTransferConstants.KEY_SELECTED_POINT_DATA, Type.pointGroupType
                 ) ?: listOf()
         }
         if (selectedPointData.isNotEmpty()) {
@@ -654,8 +611,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
                     TextDropDownDialog.SimpleTextDropDownEntity(
                         dataId = it.workstationId,
                         dataText = it.workstationName,
-                    )
-                        .apply {
+                    ).apply {
                             setChildren(it.children.map {
                                 TextDropDownDialog.SimpleTextDropDownEntity(
                                     dataId = it.workstationId,
@@ -680,8 +636,7 @@ class CreateJobFragment : BaseFormFragment<FragmentCreateJobBinding>() {
         TextDropDownDialog.showSingle(
             viewModel.workflowModes.map {
                 TextDropDownDialog.SimpleTextDropDownEntity(
-                    dataId = it.modeId,
-                    dataText = it.modeName.toString()
+                    dataId = it.modeId, dataText = it.modeName.toString()
                 )
             }, binding.lockModeTv
         ) {

+ 38 - 26
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/CreateSopFragment.kt

@@ -15,6 +15,7 @@ import com.google.android.flexbox.FlexDirection
 import com.google.android.flexbox.FlexboxLayoutManager
 import com.google.android.flexbox.JustifyContent
 import com.grkj.data.data.MMKVConstants
+import com.grkj.data.data.MainDomainData
 import com.grkj.data.data.Type
 import com.grkj.data.enums.IsolationPointPowerTypeEnum
 import com.grkj.data.model.dos.WorkflowStep
@@ -292,35 +293,43 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
         super.initData()
         viewModel.getWorkstationData().observe(this) {
             viewModel.getWorkflowModes().observe(this) {
-                val defaultWorkstationId = MMKVConstants.KEY_DEFAULT_WORKSTATION_ID.getMMKVData(0L)
-                val defaultWorkflowModeId = MMKVConstants.KEY_DEFAULT_WORKFLOW_ID.getMMKVData(0L)
-                if (defaultWorkstationId != 0L) {
-                    selectedWorkstationId = defaultWorkstationId
-                    fun findWorkstation(
-                        workstationData: List<WorkstationManageVo>,
-                        workstationId: Long
-                    ): WorkstationManageVo? {
-                        for (manageVo in workstationData) {
-                            return if (manageVo.workstationId == workstationId) {
-                                manageVo
-                            } else if (manageVo.hasChildren()) {
-                                findWorkstation(manageVo.children, workstationId)
-                            } else {
-                                null
-                            }
-                        }
-                        return null
+                setDefaultData()
+            }
+        }
+    }
+
+    private fun setDefaultData() {
+        val defaultWorkstationId = MainDomainData.defaultWorkstationId.getMMKVData(0L)
+        val defaultWorkflowModeId = MainDomainData.defaultWorkflowModeId.getMMKVData(0L)
+        if (defaultWorkstationId != 0L) {
+            selectedWorkstationId = defaultWorkstationId
+            fun findWorkstation(
+                workstationData: List<WorkstationManageVo>,
+                workstationId: Long
+            ): WorkstationManageVo? {
+                for (manageVo in workstationData) {
+                    return if (manageVo.workstationId == workstationId) {
+                        manageVo
+                    } else if (manageVo.hasChildren()) {
+                        findWorkstation(manageVo.children, workstationId)
+                    } else {
+                        continue
                     }
-                    binding.workstationTv.text =
-                        findWorkstation(
-                            viewModel.workstationData,
-                            defaultWorkstationId
-                        )?.workstationName
-                    selectedModeId = defaultWorkstationId
-                    binding.lockModeTv.text =
-                        viewModel.workflowModes.find { it.modeId == defaultWorkflowModeId }?.modeName
                 }
+                return null
             }
+            binding.workstationTv.text =
+                findWorkstation(
+                    viewModel.workstationData,
+                    defaultWorkstationId
+                )?.workstationName
+        }
+        if (defaultWorkflowModeId != 0L) {
+            selectedModeId = defaultWorkstationId
+            binding.lockModeTv.text =
+                viewModel.workflowModes.find { it.modeId == defaultWorkflowModeId }?.modeName
+            binding.selectWorkflowTip.isVisible = false
+            refreshWorkflowMode()
         }
     }
 
@@ -344,9 +353,11 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
                     countDownTime = 10,
                     onConfirmClick = {
                         clearData()
+                        setDefaultData()
                     },
                     onCancelClick = {
                         clearData()
+                        setDefaultData()
                     })
             } else {
                 TipDialog.show(
@@ -371,6 +382,7 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
         binding.workstationTv.text = ""
         binding.noSelectedMemberLayout.isVisible = true
         binding.noSelectedPointLayout.isVisible = true
+        binding.selectWorkflowTip.isVisible = true
         resetFormDirty()
     }
 

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

@@ -9,6 +9,7 @@ import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import com.grkj.data.data.MMKVConstants
+import com.grkj.data.data.MainDomainData
 import com.grkj.data.model.vo.WorkflowModeVo
 import com.grkj.iscs.R
 import com.grkj.iscs.common.DataTransferConstants
@@ -110,9 +111,9 @@ class WorkflowManageFragment : BaseFragment<FragmentWorkflowManageBinding>() {
         itemBinding.name.text = item.modeName
         itemBinding.setDefault.setOnCheckedChangeListener(null)
         itemBinding.setDefault.isChecked =
-            MMKVConstants.KEY_DEFAULT_WORKFLOW_ID.getMMKVData(0L) == item.modeId
+            MainDomainData.defaultWorkflowModeId.getMMKVData(0L) == item.modeId
         itemBinding.setDefault.setOnCheckedChangeListener { v, checked ->
-            MMKVConstants.KEY_DEFAULT_WORKFLOW_ID.saveMMKVData(item.modeId)
+            MainDomainData.defaultWorkflowModeId.saveMMKVData(item.modeId)
             adapter.notifyDataSetChanged()
         }
         itemBinding.status.setOnCheckedChangeListener(null)

+ 2 - 2
data/src/main/java/com/grkj/data/data/MMKVConstants.kt

@@ -48,12 +48,12 @@ object MMKVConstants {
     /**
      * 默认选择区域
      */
-    val KEY_DEFAULT_WORKSTATION_ID get() = "${MainDomainData.userInfo?.userId ?: 0L}_key_default_workstation_id"
+    val KEY_DEFAULT_WORKSTATION_ID get() = "_key_default_workstation_id"
 
     /**
      * 默认流程模式
      */
-    val KEY_DEFAULT_WORKFLOW_ID get() = "${MainDomainData.userInfo?.userId ?: 0L}_key_default_workflow_id"
+    val KEY_DEFAULT_WORKFLOW_ID get() = "_key_default_workflow_id"
 
     /**
      * 最大指纹录入

+ 13 - 0
data/src/main/java/com/grkj/data/data/MainDomainData.kt

@@ -4,6 +4,7 @@ import com.grkj.data.model.dos.IsJobCard
 import com.grkj.data.model.dos.SysUserDo
 import com.grkj.data.model.vo.SysBiometricDataVo
 import com.sik.sikcore.SIKCore
+import com.sik.sikcore.extension.getMMKVData
 
 /**
  * 登录之后的数据存储
@@ -49,6 +50,18 @@ object MainDomainData {
     @Volatile
     var fromQuickEntry: Boolean = false
 
+    /**
+     * 默认区域
+     */
+    val defaultWorkstationId: String
+        get() = "${userInfo?.userId ?: 0L}${MMKVConstants.KEY_DEFAULT_WORKSTATION_ID}"
+
+    /**
+     * 默认流程模式
+     */
+    val defaultWorkflowModeId: String
+        get() = "${userInfo?.userId ?: 0L}${MMKVConstants.KEY_DEFAULT_WORKFLOW_ID}"
+
     /**
      * 清除数据
      */

+ 13 - 11
data/src/main/java/com/grkj/data/logic/impl/standard/UserLogic.kt

@@ -315,20 +315,22 @@ class UserLogic @Inject constructor(
             user.workstationNames = userWorkstations.map { it.workstationName }
             user.cardCodes = jobCardDos.filter { it.userId == user.userId }.map { it.cardCode }
         }
-        return userManageVos.filter {
-            it.nickName.contains(userManageFilterData?.nickname ?: "") ||
-                    it.status == (userManageFilterData?.status ?: it.status) ||
-                    it.cardCodes.any {
+        val nickname = userManageFilterData?.nickname
+        val status = userManageFilterData?.status
+        val cardCode = userManageFilterData?.cardCode
+        val workstationName = userManageFilterData?.workstationName
+
+        val filteredList = userManageVos.filter { user ->
+            (nickname.isNullOrEmpty() || user.nickName.contains(nickname)) &&
+                    (status == null || user.status == (if (status) "1" else "0")) &&
+                    (cardCode.isNullOrEmpty() || user.cardCodes.any { it?.contains(cardCode) == true }) &&
+                    (workstationName.isNullOrEmpty() || user.workstationNames.any {
                         it?.contains(
-                            userManageFilterData?.cardCode ?: ""
+                            workstationName
                         ) == true
-                    } ||
-                    it.workstationNames.any {
-                        it?.contains(
-                            userManageFilterData?.workstationName ?: ""
-                        ) == true
-                    }
+                    })
         }
+        return filteredList
     }