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

refactor(更新)
- 预设流程模式的步骤图标在登录时检查和设置
- 复制`Sop`和`JobTicket`时复制`stepIcon`属性

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

BIN
app/src/main/assets/data.db


+ 1 - 0
app/src/main/java/com/grkj/iscs/features/login/activity/LoginActivity.kt

@@ -175,6 +175,7 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>() {
     override fun initData() {
         super.initData()
         viewModel.registerFaceFeature().observe(this) {}
+        viewModel.checkPresetWorkflowStepIcon().observe(this){}
         //todo 测试用,直接创建管理员账号
 //        viewModel.insertAdminAccount().observe(this) {}
         requestPermissionsIfNeeded(*Constants.needPermission) {

+ 15 - 0
app/src/main/java/com/grkj/iscs/features/login/viewmodel/LoginViewModel.kt

@@ -3,7 +3,11 @@ package com.grkj.iscs.features.login.viewmodel
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.liveData
 import com.grkj.data.enums.LoginResultEnum
+import com.grkj.data.logic.IJobTicketLogic
 import com.grkj.data.logic.IUserLogic
+import com.grkj.data.logic.IWorkflowLogic
+import com.grkj.data.logic.impl.standard.JobTicketLogic
+import com.grkj.data.logic.impl.standard.WorkflowLogic
 import com.grkj.shared.utils.ArcSoftUtil
 import com.grkj.ui_base.base.BaseViewModel
 import com.sik.sikcore.extension.file
@@ -17,6 +21,7 @@ import javax.inject.Inject
 @HiltViewModel
 class LoginViewModel @Inject constructor(
     override val userLogic: IUserLogic,
+    val workflowLogic: IWorkflowLogic
 ) : BaseViewModel(userLogic) {
 
 
@@ -108,4 +113,14 @@ class LoginViewModel @Inject constructor(
             emit(true)
         }
     }
+
+    /**
+     * 检查预设流程模式的步骤图标
+     */
+    fun checkPresetWorkflowStepIcon(): LiveData<Boolean> {
+        return liveData(Dispatchers.IO){
+            workflowLogic.checkPresetWorkflowStepIcon()
+            emit(true)
+        }
+    }
 }

+ 0 - 40
app/src/main/java/com/grkj/iscs/features/main/fragment/common/EditJobWorkflowSettingFragment.kt

@@ -197,46 +197,6 @@ class EditJobWorkflowSettingFragment : BaseFormFragment<FragmentWorkflowSettingB
         }
     }
 
-    /**
-     * 获取步骤图标
-     */
-    private fun getStepIcon(workflowStep: IsJobTicketStep?): String {
-        if (workflowStep == null) {
-            return ""
-        }
-        return when {
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("recognize_work_content").toString()
-            ) == true -> "ballot-check.svg"
-
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("power_isolation_way").toString()
-            ) == true -> "bolt.svg"
-
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("shutdown").toString()
-            ) == true -> "power.svg"
-
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("ensure_power_isolation").toString()
-            ) == true -> "bolt-slash.svg"
-
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("check_before_unlocking").toString()
-            ) == true -> "shield-check.svg"
-
-            workflowStep.stepTitleShort?.contains(
-                CommonUtils.getStr("unlock_and_restore_switch").toString()
-            ) == true -> "rotate-left.svg"
-
-            workflowStep.enableSetLocker || workflowStep.enableSetColocker -> "users-alt.svg"
-            workflowStep.enableLock -> "lock.svg"
-            workflowStep.enableColock -> "access-control.svg"
-            workflowStep.enableUnlock -> "unlock.svg"
-            else -> ""
-        }
-    }
-
     override fun initData() {
         super.initData()
         viewModel.modeId = GlobalDataTempStore.getInstance()

+ 5 - 0
data/src/main/java/com/grkj/data/logic/IWorkflowLogic.kt

@@ -69,4 +69,9 @@ interface IWorkflowLogic {
      * 添加步骤
      */
     fun insertSteps(workflowSteps: List<WorkflowStep>)
+
+    /**
+     * 检查预设流程模式的步骤图标
+     */
+    fun checkPresetWorkflowStepIcon()
 }

+ 4 - 0
data/src/main/java/com/grkj/data/logic/impl/network/NetworkWorkflowLogic.kt

@@ -67,4 +67,8 @@ class NetworkWorkflowLogic @Inject constructor()  : BaseLogic(), IWorkflowLogic{
     override fun insertSteps(workflowSteps: List<WorkflowStep>) {
         TODO("Not yet implemented")
     }
+
+    override fun checkPresetWorkflowStepIcon() {
+        TODO("Not yet implemented")
+    }
 }

+ 4 - 0
data/src/main/java/com/grkj/data/logic/impl/standard/JobTicketLogic.kt

@@ -137,6 +137,7 @@ class JobTicketLogic @Inject constructor(
                 isJobTicketStep.stepIndex = workflowStep.stepIndex
                 isJobTicketStep.stepContent = workflowStep.stepTitle
                 isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
+                isJobTicketStep.stepIcon = workflowStep.stepIcon
                 isJobTicketStep.createTime =
                     TimeUtils.nowString(TimeUtils.DEFAULT_DATE_HOUR_MIN_SEC_FORMAT)
                 isJobTicketStep.updateTime =
@@ -246,6 +247,7 @@ class JobTicketLogic @Inject constructor(
                 isJobTicketStep.stepIndex = workflowStep.stepIndex
                 isJobTicketStep.stepContent = workflowStep.stepTitle
                 isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
+                isJobTicketStep.stepIcon = workflowStep.stepIcon
                 isJobTicketStep.createTime =
                     TimeUtils.nowString(TimeUtils.DEFAULT_DATE_HOUR_MIN_SEC_FORMAT)
                 isJobTicketStep.updateTime =
@@ -1264,6 +1266,7 @@ class JobTicketLogic @Inject constructor(
                 isJobTicketStep.stepIndex = workflowStep.stepIndex
                 isJobTicketStep.stepContent = workflowStep.stepTitle
                 isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
+                isJobTicketStep.stepIcon = workflowStep.stepIcon
                 isJobTicketStep.createTime =
                     TimeUtils.nowString(TimeUtils.DEFAULT_DATE_HOUR_MIN_SEC_FORMAT)
                 isJobTicketStep.updateTime =
@@ -1359,6 +1362,7 @@ class JobTicketLogic @Inject constructor(
                 isJobTicketStep.stepIndex = workflowStep.stepIndex
                 isJobTicketStep.stepContent = workflowStep.stepTitle
                 isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
+                isJobTicketStep.stepIcon = workflowStep.stepIcon
                 isJobTicketStep.createTime =
                     TimeUtils.nowString(TimeUtils.DEFAULT_DATE_HOUR_MIN_SEC_FORMAT)
                 isJobTicketStep.updateTime =

+ 1 - 0
data/src/main/java/com/grkj/data/logic/impl/standard/SopLogic.kt

@@ -44,6 +44,7 @@ class SopLogic @Inject constructor(
             val isSopWorkflowStep =
                 BeanUtils.copyProperties(it, IsSopWorkflowStep::class.java) ?: IsSopWorkflowStep()
             isSopWorkflowStep.sopId = sopId
+            isSopWorkflowStep.stepIcon = it.stepIcon
             isSopWorkflowStep
         }
         isSopDao.saveSopWorkflowStep(isSopWorkflowStep)

+ 36 - 0
data/src/main/java/com/grkj/data/logic/impl/standard/WorkflowLogic.kt

@@ -5,6 +5,7 @@ import com.grkj.data.model.dos.WorkflowMode
 import com.grkj.data.model.dos.WorkflowStep
 import com.grkj.data.logic.BaseLogic
 import com.grkj.data.logic.IWorkflowLogic
+import com.grkj.data.model.dos.IsJobTicketStep
 import javax.inject.Inject
 import javax.inject.Singleton
 
@@ -41,6 +42,41 @@ class WorkflowLogic @Inject constructor(val workflowStepDao: WorkflowStepDao) :
         workflowStepDao.insertSteps(workflowSteps)
     }
 
+    override fun checkPresetWorkflowStepIcon() {
+        val workflowModes = getWorkflowModes()
+        for (mode in workflowModes) {
+            val workflowSteps = getStepsByMode(mode.modeId)
+            workflowSteps.forEach {
+                if (it.stepIcon?.isEmpty() == true) {
+                    it.stepIcon = getStepIcon(mode.modeName, it)
+                    updateStep(it)
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取步骤图标
+     */
+    private fun getStepIcon(modeName: String?, workflowStep: WorkflowStep?): String {
+        if (workflowStep == null || modeName == null) {
+            return ""
+        }
+        return when {
+            modeName.contains("LOTO") && workflowStep.stepIndex == 1 -> "ballot-check.svg"
+            modeName.contains("LOTO") && workflowStep.stepIndex == 2 -> "bolt.svg"
+            modeName.contains("LOTO") && workflowStep.stepIndex == 4 -> "power.svg"
+            modeName.contains("LOTO") && workflowStep.stepIndex == 6 -> "bolt-slash.svg"
+            modeName.contains("LOTO") && workflowStep.stepIndex == 7 -> "shield-check.svg"
+            modeName.contains("LOTO") && workflowStep.stepIndex == 8 -> "rotate-left.svg"
+            workflowStep.enableSetLocker || workflowStep.enableSetColocker -> "users-alt.svg"
+            workflowStep.enableLock -> "lock.svg"
+            workflowStep.enableColock -> "access-control.svg"
+            workflowStep.enableUnlock -> "unlock.svg"
+            else -> ""
+        }
+    }
+
     override fun updateWorkflowModeDeleted(workflowModeId: List<Long>, deleted: Boolean) {
         workflowStepDao.updateWorkflowModeDeleted(workflowModeId, deleted)
     }