Browse Source

refactor(更新)
- 新建作业改成保存并执行

周文健 5 tháng trước cách đây
mục cha
commit
050985f749

+ 2 - 6
app/src/main/java/com/grkj/iscs/features/login/dialog/LoginDialog.kt

@@ -57,13 +57,9 @@ class LoginDialog(
                 return@setOnClickListener
             }
             LoadingEvent.sendLoadingEvent(CommonUtils.getStr(com.grkj.ui_base.R.string.doing_login),true)
-            val username = if (mBinding.etAccount.text.toString()=="1")"罗成" else "zwj"
-            val password = if (mBinding.etAccount.text.toString()=="1")"123456" else "123456"
             viewModel.loginWithAccount(
-                username,
-                password,
-//                mBinding.etAccount.text.toString(),
-//                mBinding.etPassword.text.toString()
+                mBinding.etAccount.text.toString(),
+                mBinding.etPassword.text.toString()
             ).observe(lifecycleOwner) {
                 callBack?.invoke(it)
             }

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

@@ -3,7 +3,6 @@ package com.grkj.iscs.features.main.fragment.job_manage
 import android.widget.LinearLayout
 import androidx.core.view.isVisible
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.ViewModelProvider
 import com.drake.brv.BindingAdapter
 import com.drake.brv.utils.grid
 import com.drake.brv.utils.linear
@@ -76,27 +75,30 @@ class CreateJobFragment : BaseFragment<FragmentCreateJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.confirm.setDebouncedClickListener {
+        binding.save.setDebouncedClickListener {
+            if (checkData()) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
+                    msg = CommonUtils.getStr(R.string.job_save_tip).toString(),
+                    dialogType = TipDialog.DialogType.INFO,
+                    countDownTime = 10,
+                    onConfirmClick = {
+                        saveJob(null)
+                    })
+            }
+        }
+        binding.saveAndExecute.setDebouncedClickListener {
             if (checkData()) {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_confirm).toString(),
                     msg = CommonUtils.getStr(
-                        R.string.job_save_tip,
+                        R.string.job_save_and_execute_tip,
                         args = listOf<String>(binding.jobNameEt.text.toString()).toTypedArray()
                     ).toString(),
                     dialogType = TipDialog.DialogType.INFO,
                     countDownTime = 10,
                     onConfirmClick = {
-                        ThreadUtils.runOnIO {
-                            val sopId = if (binding.saveSop.isChecked) {
-                                async { saveSop() }
-                            } else {
-                                null
-                            }
-                            withContext(Dispatchers.Main) {
-                                saveJob(sopId?.await())
-                            }
-                        }
+                        saveJob(null, true)
                     })
             }
         }
@@ -272,29 +274,49 @@ class CreateJobFragment : BaseFragment<FragmentCreateJobBinding>() {
     /**
      * 保存作业
      */
-    private fun saveJob(sopId: Long?) {
-        viewModel.createJob(
+    private fun saveJob(sopId: Long?, isExecute: Boolean = false) {
+        viewModel.saveJob(
             selectedPointData,
             selectedLockerData,
             selectedColockerData,
             selectedLockMode,
             sopId,
             selectedWorkstationId!!,
-            binding.jobNameEt.text.toString()
+            binding.jobNameEt.text.toString(),
+            viewModel.jobTicketData?.ticketId ?: 0
         ).observe(this) {
             if (it) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed).toString(),
-                    msg = CommonUtils.getStr(R.string.job_create_succeed).toString(),
-                    dialogType = TipDialog.DialogType.SUCCESS,
-                    countDownTime = 10,
-                    onConfirmClick = {
-                        clearData()
-                    },
-                    onCancelClick = {
-                        clearData()
+                if (isExecute) {
+                    viewModel.startJob().observe(this) {
+                        if (it){
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.job_create_and_execute_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        }else{
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),
+                                msg = CommonUtils.getStr(R.string.job_create_and_execute_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.ERROR,
+                                showConfirm = false,
+                                countDownTime = 10
+                            )
+                        }
                     }
-                )
+                } else {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                            .toString(),
+                        msg = CommonUtils.getStr(R.string.job_create_succeed).toString(),
+                        dialogType = TipDialog.DialogType.SUCCESS,
+                        countDownTime = 10,
+                    )
+                }
             } else {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),

+ 52 - 17
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/CreateSopJobFragment.kt

@@ -69,7 +69,19 @@ class CreateSopJobFragment : BaseFragment<FragmentCreateSopJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.confirm.setDebouncedClickListener {
+        binding.save.setDebouncedClickListener {
+            if (checkData()) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
+                    msg = CommonUtils.getStr(R.string.job_save_tip).toString(),
+                    dialogType = TipDialog.DialogType.INFO,
+                    countDownTime = 10,
+                    onConfirmClick = {
+                        saveSopJob()
+                    })
+            }
+        }
+        binding.saveAndExecute.setDebouncedClickListener {
             if (checkData()) {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_confirm).toString(),
@@ -80,7 +92,7 @@ class CreateSopJobFragment : BaseFragment<FragmentCreateSopJobBinding>() {
                     dialogType = TipDialog.DialogType.INFO,
                     countDownTime = 10,
                     onConfirmClick = {
-                        saveSopJob()
+                        saveSopJob(true)
                     })
             }
         }
@@ -148,33 +160,56 @@ class CreateSopJobFragment : BaseFragment<FragmentCreateSopJobBinding>() {
     /**
      * 保存sop作业
      */
-    private fun saveSopJob() {
-        viewModel.createSopJob(
+    /**
+     * 保存sop作业
+     */
+    private fun saveSopJob(isExecute: Boolean = false) {
+        viewModel.saveSopJob(
             selectedPointData,
             selectedLockerData,
             selectedColockerData,
             selectedSop?.lockMode,
             selectedSopId,
             selectedWorkstationId!!,
-            binding.jobNameEt.text.toString()
+            binding.jobNameEt.text.toString(),
+            viewModel.jobTicketData?.ticketId ?: 0
         ).observe(this) {
             if (it) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed).toString(),
-                    msg = CommonUtils.getStr(R.string.sop_job_create_succeed).toString(),
-                    dialogType = TipDialog.DialogType.SUCCESS,
-                    countDownTime = 10,
-                    onConfirmClick = {
-                        clearData()
-                    },
-                    onCancelClick = {
-                        clearData()
+                if (isExecute) {
+                    viewModel.startJob().observe(this) {
+                        if (it) {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.sop_job_save_and_execute_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        } else {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.sop_job_save_and_execute_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        }
                     }
-                )
+                } else {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                            .toString(),
+                        msg = CommonUtils.getStr(R.string.sop_job_save_succeed).toString(),
+                        dialogType = TipDialog.DialogType.SUCCESS,
+                        countDownTime = 10,
+                    )
+                }
             } else {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),
-                    msg = CommonUtils.getStr(R.string.sop_job_create_failed).toString(),
+                    msg = CommonUtils.getStr(R.string.sop_job_save_failed).toString(),
                     dialogType = TipDialog.DialogType.ERROR,
                     showConfirm = false,
                     countDownTime = 10

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

@@ -3,8 +3,6 @@ package com.grkj.iscs.features.main.fragment.job_manage
 import android.widget.LinearLayout
 import androidx.core.view.isVisible
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.ViewModelProvider
-import androidx.navigation.NavOptions
 import com.drake.brv.BindingAdapter
 import com.drake.brv.utils.grid
 import com.drake.brv.utils.linear
@@ -61,25 +59,6 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.startJob.setDebouncedClickListener {
-            if (checkData()) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
-                    msg = CommonUtils.getStr(R.string.start_job_check).toString(),
-                    dialogType = TipDialog.DialogType.INFO,
-                    countDownTime = 10,
-                    onConfirmClick = {
-                        viewModel.startJob().observe(this) {
-                            GlobalDataTempStore.getInstance()
-                                .saveData(
-                                    DataTransferConstants.KEY_JOB_TICKET_ID,
-                                    viewModel.jobTicketData?.ticketId ?: 0
-                                )
-                            navController.navigate(R.id.action_editJobFragment_to_jobExecuteFragment)
-                        }
-                    })
-            }
-        }
         binding.cancel.setDebouncedClickListener {
             TipDialog.show(
                 title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
@@ -90,18 +69,30 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.confirm.setDebouncedClickListener {
+        binding.save.setDebouncedClickListener {
+            if (checkData()) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
+                    msg = CommonUtils.getStr(R.string.job_save_tip).toString(),
+                    dialogType = TipDialog.DialogType.INFO,
+                    countDownTime = 10,
+                    onConfirmClick = {
+                        saveJob(null)
+                    })
+            }
+        }
+        binding.saveAndExecute.setDebouncedClickListener {
             if (checkData()) {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_confirm).toString(),
                     msg = CommonUtils.getStr(
-                        R.string.job_save_tip,
+                        R.string.job_save_and_execute_tip,
                         args = listOf<String>(binding.jobNameEt.text.toString()).toTypedArray()
                     ).toString(),
                     dialogType = TipDialog.DialogType.INFO,
                     countDownTime = 10,
                     onConfirmClick = {
-                        saveJob(null)
+                        saveJob(null, true)
                     })
             }
         }
@@ -190,7 +181,7 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
     /**
      * 保存作业
      */
-    private fun saveJob(sopId: Long?) {
+    private fun saveJob(sopId: Long?, isExecute: Boolean = false) {
         viewModel.saveJob(
             selectedPointData,
             selectedLockerData,
@@ -202,12 +193,37 @@ class EditJobFragment : BaseFragment<FragmentEditJobBinding>() {
             viewModel.jobTicketData?.ticketId ?: 0
         ).observe(this) {
             if (it) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed).toString(),
-                    msg = CommonUtils.getStr(R.string.job_create_succeed).toString(),
-                    dialogType = TipDialog.DialogType.SUCCESS,
-                    countDownTime = 10,
-                )
+                if (isExecute) {
+                    viewModel.startJob().observe(this) {
+                        if (it){
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.job_create_and_execute_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        }else{
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),
+                                msg = CommonUtils.getStr(R.string.job_create_and_execute_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.ERROR,
+                                showConfirm = false,
+                                countDownTime = 10
+                            )
+                        }
+                    }
+                } else {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                            .toString(),
+                        msg = CommonUtils.getStr(R.string.job_create_succeed).toString(),
+                        dialogType = TipDialog.DialogType.SUCCESS,
+                        countDownTime = 10,
+                    )
+                }
             } else {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),

+ 46 - 29
app/src/main/java/com/grkj/iscs/features/main/fragment/job_manage/EditSopJobFragment.kt

@@ -3,8 +3,6 @@ package com.grkj.iscs.features.main.fragment.job_manage
 import android.widget.LinearLayout
 import androidx.core.view.isVisible
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.ViewModelProvider
-import androidx.navigation.NavOptions
 import com.drake.brv.BindingAdapter
 import com.drake.brv.utils.grid
 import com.drake.brv.utils.linear
@@ -16,8 +14,6 @@ import com.grkj.data.model.vo.SopManageVo
 import com.grkj.data.model.vo.UserManageVo
 import com.grkj.iscs.R
 import com.grkj.iscs.common.DataTransferConstants
-import com.grkj.iscs.databinding.FragmentCreateSopJobBinding
-import com.grkj.iscs.databinding.FragmentEditSopBinding
 import com.grkj.iscs.databinding.FragmentEditSopJobBinding
 import com.grkj.iscs.databinding.ItemSelectMemberBinding
 import com.grkj.iscs.databinding.ItemSelectPointBinding
@@ -62,22 +58,6 @@ class EditSopJobFragment : BaseFragment<FragmentEditSopJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.startJob.setDebouncedClickListener {
-            if (checkData()) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
-                    msg = CommonUtils.getStr(R.string.start_job_check).toString(),
-                    dialogType = TipDialog.DialogType.INFO,
-                    countDownTime = 10,
-                    onConfirmClick = {
-                        viewModel.startJob().observe(this) {
-                            GlobalDataTempStore.getInstance()
-                                .saveData(DataTransferConstants.KEY_JOB_TICKET_ID, viewModel.jobTicketData?.ticketId?:0)
-                            navController.navigate(R.id.action_editSopJobFragment_to_jobExecuteFragment)
-                        }
-                    })
-            }
-        }
         binding.cancel.setDebouncedClickListener {
             TipDialog.show(
                 title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
@@ -88,7 +68,19 @@ class EditSopJobFragment : BaseFragment<FragmentEditSopJobBinding>() {
                     navController.popBackStack()
                 })
         }
-        binding.confirm.setDebouncedClickListener {
+        binding.save.setDebouncedClickListener {
+            if (checkData()) {
+                TipDialog.show(
+                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_hint).toString(),
+                    msg = CommonUtils.getStr(R.string.job_save_tip).toString(),
+                    dialogType = TipDialog.DialogType.INFO,
+                    countDownTime = 10,
+                    onConfirmClick = {
+                        saveSopJob()
+                    })
+            }
+        }
+        binding.saveAndExecute.setDebouncedClickListener {
             if (checkData()) {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_confirm).toString(),
@@ -99,7 +91,7 @@ class EditSopJobFragment : BaseFragment<FragmentEditSopJobBinding>() {
                     dialogType = TipDialog.DialogType.INFO,
                     countDownTime = 10,
                     onConfirmClick = {
-                        saveSopJob()
+                        saveSopJob(true)
                     })
             }
         }
@@ -167,7 +159,7 @@ class EditSopJobFragment : BaseFragment<FragmentEditSopJobBinding>() {
     /**
      * 保存sop作业
      */
-    private fun saveSopJob() {
+    private fun saveSopJob(isExecute: Boolean = false) {
         viewModel.saveSopJob(
             selectedPointData,
             selectedLockerData,
@@ -179,12 +171,37 @@ class EditSopJobFragment : BaseFragment<FragmentEditSopJobBinding>() {
             viewModel.jobTicketData?.ticketId ?: 0
         ).observe(this) {
             if (it) {
-                TipDialog.show(
-                    title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed).toString(),
-                    msg = CommonUtils.getStr(R.string.sop_job_save_succeed).toString(),
-                    dialogType = TipDialog.DialogType.SUCCESS,
-                    countDownTime = 10,
-                )
+                if (isExecute) {
+                    viewModel.startJob().observe(this) {
+                        if (it) {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.sop_job_save_and_execute_succeed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        } else {
+                            TipDialog.show(
+                                title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                                    .toString(),
+                                msg = CommonUtils.getStr(R.string.sop_job_save_and_execute_failed)
+                                    .toString(),
+                                dialogType = TipDialog.DialogType.SUCCESS,
+                                countDownTime = 10,
+                            )
+                        }
+                    }
+                } else {
+                    TipDialog.show(
+                        title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_succeed)
+                            .toString(),
+                        msg = CommonUtils.getStr(R.string.sop_job_save_succeed).toString(),
+                        dialogType = TipDialog.DialogType.SUCCESS,
+                        countDownTime = 10,
+                    )
+                }
             } else {
                 TipDialog.show(
                     title = CommonUtils.getStr(com.grkj.ui_base.R.string.action_failed).toString(),

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

@@ -0,0 +1,101 @@
+package com.grkj.iscs.features.main.fragment.job_manage
+
+import android.graphics.Color
+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.enums.JobTicketStatusEnum
+import com.grkj.data.model.vo.JobTicketManageVo
+import com.grkj.iscs.R
+import com.grkj.iscs.databinding.FragmentExceptionJobManageBinding
+import com.grkj.iscs.databinding.ItemJobManageBinding
+import com.grkj.iscs.features.main.viewmodel.job_manage.JobManageViewModel
+import com.grkj.ui_base.base.BaseFragment
+import com.sik.sikcore.extension.setDebouncedClickListener
+import dagger.hilt.android.AndroidEntryPoint
+
+/**
+ * 异常作业
+ */
+@AndroidEntryPoint
+class ExceptionJobManageFragment : BaseFragment<FragmentExceptionJobManageBinding>() {
+    private val viewModel: JobManageViewModel by viewModels()
+    override fun getLayoutId(): Int {
+        return R.layout.fragment_exception_job_manage
+    }
+
+    override fun initView() {
+        binding.back.setDebouncedClickListener {
+            navController.popBackStack()
+        }
+        binding.refreshLayout.setOnRefreshListener {
+            getData(nextPage = false)
+        }
+        binding.refreshLayout.setOnLoadMoreListener {
+            getData()
+        }
+        binding.listRv.linear().divider {
+            this.setColor(Color.BLACK)
+            this.startVisible = false
+            this.endVisible = true
+            this.orientation = DividerOrientation.VERTICAL
+        }.setup {
+            addType<JobTicketManageVo>(R.layout.item_job_manage)
+            onBind {
+                onListDataBinding(this)
+            }
+        }
+        setSelectAllListener()
+    }
+
+    private fun setSelectAllListener() {
+        binding.selectAll.setOnCheckedChangeListener { v, checked ->
+            viewModel.jobManageDataList.forEach { it.isSelected = checked }
+            binding.listRv.adapter?.notifyDataSetChanged()
+        }
+    }
+
+    private fun BindingAdapter.BindingViewHolder.onListDataBinding(holder: BindingAdapter.BindingViewHolder) {
+        val itemBinding = holder.getBinding<ItemJobManageBinding>()
+        val item = holder.getModel<JobTicketManageVo>()
+        itemBinding.jobName.text = item.ticketName
+        itemBinding.status.text = JobTicketStatusEnum.getTicketStatusStr(item.ticketStatus)
+        itemBinding.select.setOnCheckedChangeListener(null)
+        itemBinding.select.isChecked = item.isSelected
+        itemBinding.select.setOnCheckedChangeListener { _, checked ->
+            item.isSelected = checked
+            binding.selectAll.setOnCheckedChangeListener(null)
+            binding.selectAll.isChecked = viewModel.jobManageDataList.all { it.isSelected }
+            setSelectAllListener()
+        }
+    }
+
+    override fun initData() {
+        super.initData()
+        getData(nextPage = false)
+    }
+
+    private fun getData(nextPage: Boolean = true) {
+        viewModel.getData(nextPage).observe(this) {
+            if (!nextPage) {
+                binding.selectAll.setOnCheckedChangeListener(null)
+                binding.selectAll.isChecked = false
+                setSelectAllListener()
+            }
+            binding.refreshLayout.finishRefresh()
+            binding.refreshLayout.finishLoadMore()
+            binding.listRv.models = viewModel.jobManageDataList.filter {
+                it.ticketStatus in listOf(
+                    JobTicketStatusEnum.SELECT_MEMBER,
+                    JobTicketStatusEnum.LOCKING,
+                    JobTicketStatusEnum.COLOCKING,
+                    JobTicketStatusEnum.UNLOCKING
+                ).map { it.status }
+            }
+        }
+    }
+}

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

@@ -131,7 +131,7 @@ class JobManageHomeFragment : BaseFragment<FragmentJobManageHomeBinding>() {
             }
 
             3 -> {
-
+                navController.navigate(R.id.action_jobManageHomeFragment_to_exceptionJobManageFragment)
             }
 
             4 -> {
@@ -147,7 +147,7 @@ class JobManageHomeFragment : BaseFragment<FragmentJobManageHomeBinding>() {
             }
 
             7 -> {
-
+                navController.navigate(R.id.action_jobManageHomeFragment_to_lockedPointsFragment)
             }
         }
     }

+ 13 - 2
app/src/main/res/layout/fragment_create_job.xml

@@ -431,12 +431,23 @@
                 android:layout_weight="1" />
 
             <TextView
-                android:id="@+id/confirm"
+                android:id="@+id/save_and_execute"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:layout_marginRight="10dp"
                 android:background="@drawable/common_dialog_btn"
                 android:paddingHorizontal="20dp"
-                android:text="@string/confirm"
+                android:text="@string/save_and_execute"
+                android:textColor="@color/black"
+                android:textSize="20sp" />
+
+            <TextView
+                android:id="@+id/save"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/common_dialog_btn"
+                android:paddingHorizontal="20dp"
+                android:text="@string/save"
                 android:textColor="@color/black"
                 android:textSize="20sp" />
 

+ 14 - 4
app/src/main/res/layout/fragment_create_sop_job.xml

@@ -398,13 +398,23 @@
             android:padding="10dp">
 
             <TextView
-                android:id="@+id/confirm"
+                android:id="@+id/save_and_execute"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="10dp"
+                android:background="@drawable/common_dialog_btn"
+                android:paddingHorizontal="20dp"
+                android:text="@string/save_and_execute"
+                android:textColor="@color/black"
+                android:textSize="20sp" />
+
+            <TextView
+                android:id="@+id/save"
                 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/confirm"
+                android:text="@string/save"
                 android:textColor="@color/black"
                 android:textSize="20sp" />
 
@@ -412,7 +422,7 @@
                 android:id="@+id/cancel"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginLeft="10dp"
+                android:layout_marginHorizontal="10dp"
                 android:background="@drawable/common_dialog_btn"
                 android:paddingHorizontal="20dp"
                 android:text="@string/cancel"

+ 13 - 14
app/src/main/res/layout/fragment_edit_job.xml

@@ -31,18 +31,6 @@
                 android:textColor="@color/black"
                 android:textSize="24sp" />
 
-            <TextView
-                android:id="@+id/start_job"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginLeft="10dp"
-                android:background="@drawable/common_dialog_btn"
-                android:backgroundTint="@color/color_1daeff"
-                android:paddingHorizontal="20dp"
-                android:text="@string/start_the_job"
-                android:textColor="@color/white"
-                android:textSize="20sp" />
-
             <TextView
                 android:id="@+id/back"
                 android:layout_width="wrap_content"
@@ -377,12 +365,23 @@
                 android:layout_weight="1" />
 
             <TextView
-                android:id="@+id/confirm"
+                android:id="@+id/save_and_execute"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="10dp"
+                android:background="@drawable/common_dialog_btn"
+                android:paddingHorizontal="20dp"
+                android:text="@string/save_and_execute"
+                android:textColor="@color/black"
+                android:textSize="20sp" />
+
+            <TextView
+                android:id="@+id/save"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:background="@drawable/common_dialog_btn"
                 android:paddingHorizontal="20dp"
-                android:text="@string/confirm"
+                android:text="@string/save"
                 android:textColor="@color/black"
                 android:textSize="20sp" />
 

+ 14 - 16
app/src/main/res/layout/fragment_edit_sop_job.xml

@@ -31,18 +31,6 @@
                 android:textColor="@color/black"
                 android:textSize="24sp" />
 
-            <TextView
-                android:id="@+id/start_job"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginLeft="10dp"
-                android:background="@drawable/common_dialog_btn"
-                android:backgroundTint="@color/color_1daeff"
-                android:paddingHorizontal="20dp"
-                android:text="@string/start_the_job"
-                android:textColor="@color/white"
-                android:textSize="20sp" />
-
             <TextView
                 android:id="@+id/back"
                 android:layout_width="wrap_content"
@@ -362,13 +350,23 @@
             android:padding="10dp">
 
             <TextView
-                android:id="@+id/confirm"
+                android:id="@+id/save_and_execute"
                 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/confirm"
+                android:text="@string/save_and_execute"
+                android:textColor="@color/black"
+                android:textSize="20sp" />
+
+            <TextView
+                android:id="@+id/save"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/common_dialog_btn"
+                android:paddingHorizontal="20dp"
+                android:text="@string/save"
                 android:textColor="@color/black"
                 android:textSize="20sp" />
 
@@ -376,7 +374,7 @@
                 android:id="@+id/cancel"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginLeft="10dp"
+                android:layout_marginHorizontal="10dp"
                 android:background="@drawable/common_dialog_btn"
                 android:paddingHorizontal="20dp"
                 android:text="@string/cancel"

+ 106 - 0
app/src/main/res/layout/fragment_exception_job_manage.xml

@@ -0,0 +1,106 @@
+<?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/exception_job_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="wrap_content"
+            android:layout_marginHorizontal="20dp"
+            android:layout_marginTop="10dp"
+            android:background="@drawable/common_card_bg"
+            android:divider="@drawable/divider_table"
+            android:showDividers="middle">
+
+            <CheckBox
+                android:id="@+id/select_all"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:layout_gravity="center"
+                android:layout_margin="10dp" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/job_name"
+                android:textSize="18sp" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/exception_reason"
+                android:textSize="18sp" />
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:text="@string/detail"
+                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/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>

+ 14 - 0
app/src/main/res/navigation/nav_job_manage.xml

@@ -26,6 +26,12 @@
         <action
             android:id="@+id/action_jobManageHomeFragment_to_inProgressJobManageFragment"
             app:destination="@id/inProgressJobManageFragment" />
+        <action
+            android:id="@+id/action_jobManageHomeFragment_to_lockedPointsFragment"
+            app:destination="@id/lockedPointsFragment" />
+        <action
+            android:id="@+id/action_jobManageHomeFragment_to_exceptionJobManageFragment"
+            app:destination="@id/exceptionJobManageFragment" />
     </fragment>
     <fragment
         android:id="@+id/createJobFragment"
@@ -153,4 +159,12 @@
             android:id="@+id/action_inProgressJobManageFragment_to_jobExecuteFragment"
             app:destination="@id/jobExecuteFragment" />
     </fragment>
+    <fragment
+        android:id="@+id/lockedPointsFragment"
+        android:name="com.grkj.iscs.features.main.fragment.job_manage.LockedPointsFragment"
+        android:label="LockedPointsFragment" />
+    <fragment
+        android:id="@+id/exceptionJobManageFragment"
+        android:name="com.grkj.iscs.features.main.fragment.job_manage.ExceptionJobManageFragment"
+        android:label="ExceptionJobManageFragment" />
 </navigation>

+ 12 - 4
app/src/main/res/values-en/strings.xml

@@ -123,9 +123,9 @@
     <string name="job_workstation">Job workstation</string>
     <string name="create_job_name">Job name</string>
     <string name="please_select_job_workstation">Please select job workstation</string>
-    <string name="job_create_succeed">Job create succeed</string>
-    <string name="job_create_failed">Job create failed</string>
-    <string name="job_save_tip">Are you sure you want to execute the job \"%1$s\"?</string>
+    <string name="job_create_and_execute_succeed">Job create succeed</string>
+    <string name="job_create_and_execute_failed">Job create failed</string>
+    <string name="job_save_and_execute_tip">Are you sure you want to execute the job \"%1$s\"?</string>
     <string name="save_sop_check">Create SOP</string>
     <string name="sop_manage_title">SOP manage</string>
     <string name="sop_manage_sop_name">SOP name</string>
@@ -142,7 +142,7 @@
     <string name="job_canceled">Job already canceled</string>
     <string name="job_finished">Job already finished</string>
     <string name="edit_sop_job_title">SOP job detail</string>
-    <string name="start_job_check">Are you sure to start job?</string>
+    <string name="job_save_tip">Are you sure you want to save the assignment \"%1$s\"?</string>
     <string name="sop_job_save_succeed">SOP job save succeed</string>
     <string name="sop_job_save_failed">SOP job save failed</string>
     <string name="edit_job_title">Job detail</string>
@@ -186,4 +186,12 @@
     <string name="reset_user_password_succeed">reset user password succeed</string>
     <string name="reset_user_password_failed">reset user password failed</string>
     <string name="old_password_error">old password error</string>
+    <string name="exception_job_title">Exception Job</string>
+    <string name="exception_reason">Exception Reason</string>
+    <string name="save_and_execute">save and execute</string>
+    <string name="save">save</string>
+    <string name="job_create_succeed">Job save succeed</string>
+    <string name="job_create_failed">Job save failed</string>
+    <string name="sop_job_save_and_execute_succeed">SOP job execute succeed</string>
+    <string name="sop_job_save_and_execute_failed">SOP job execute failed</string>
 </resources>

+ 12 - 4
app/src/main/res/values-zh/strings.xml

@@ -123,9 +123,9 @@
     <string name="job_workstation">作业区域</string>
     <string name="create_job_name">作业名称</string>
     <string name="please_select_job_workstation">请选择作业区域</string>
-    <string name="job_create_succeed">作业执行成功</string>
-    <string name="job_create_failed">作业执行失败</string>
-    <string name="job_save_tip">确定要执行作业\"%1$s\"吗?</string>
+    <string name="job_create_and_execute_succeed">作业执行成功</string>
+    <string name="job_create_and_execute_failed">作业执行失败</string>
+    <string name="job_save_and_execute_tip">确定要执行作业\"%1$s\"吗?</string>
     <string name="save_sop_check">生成SOP</string>
     <string name="sop_manage_title">SOP管理</string>
     <string name="sop_manage_sop_name">SOP名称</string>
@@ -142,7 +142,7 @@
     <string name="job_canceled">作业已取消</string>
     <string name="job_finished">作业已结束</string>
     <string name="edit_sop_job_title">SOP作业详情</string>
-    <string name="start_job_check">确认开始执行作业吗?</string>
+    <string name="job_save_tip">确定要保存作业\"%1$s\"吗?</string>
     <string name="sop_job_save_succeed">SOP作业保存成功</string>
     <string name="sop_job_save_failed">SOP作业保存失败</string>
     <string name="edit_job_title">作业详情</string>
@@ -186,4 +186,12 @@
     <string name="reset_user_password_succeed">用户密码重置成功</string>
     <string name="reset_user_password_failed">用户密码重置失败</string>
     <string name="old_password_error">旧密码错误</string>
+    <string name="exception_job_title">异常作业</string>
+    <string name="exception_reason">异常信息</string>
+    <string name="save_and_execute">保存并执行</string>
+    <string name="save">保存</string>
+    <string name="job_create_succeed">作业保存成功</string>
+    <string name="job_create_failed">作业保存失败</string>
+    <string name="sop_job_save_and_execute_succeed">SOP作业执行成功</string>
+    <string name="sop_job_save_and_execute_failed">SOP作业执行失败</string>
 </resources>

+ 12 - 4
app/src/main/res/values/strings.xml

@@ -122,9 +122,9 @@
     <string name="job_workstation">作业区域</string>
     <string name="create_job_name">作业名称</string>
     <string name="please_select_job_workstation">请选择作业区域</string>
-    <string name="job_create_succeed">作业执行成功</string>
-    <string name="job_create_failed">作业执行失败</string>
-    <string name="job_save_tip">确定要执行作业\"%1$s\"吗?</string>
+    <string name="job_create_and_execute_succeed">作业执行成功</string>
+    <string name="job_create_and_execute_failed">作业执行失败</string>
+    <string name="job_save_and_execute_tip">确定要执行作业\"%1$s\"吗?</string>
     <string name="save_sop_check">生成SOP</string>
     <string name="sop_manage_title">SOP管理</string>
     <string name="sop_manage_sop_name">SOP名称</string>
@@ -141,7 +141,7 @@
     <string name="job_canceled">作业已取消</string>
     <string name="job_finished">作业已结束</string>
     <string name="edit_sop_job_title">SOP作业详情</string>
-    <string name="start_job_check">确认开始执行作业吗?</string>
+    <string name="job_save_tip">确定要保存作业\"%1$s\"吗?</string>
     <string name="sop_job_save_succeed">SOP作业保存成功</string>
     <string name="sop_job_save_failed">SOP作业保存失败</string>
     <string name="edit_job_title">作业详情</string>
@@ -185,4 +185,12 @@
     <string name="reset_user_password_succeed">用户密码重置成功</string>
     <string name="reset_user_password_failed">用户密码重置失败</string>
     <string name="old_password_error">旧密码错误</string>
+    <string name="exception_job_title">异常作业</string>
+    <string name="exception_reason">异常信息</string>
+    <string name="save_and_execute">保存并执行</string>
+    <string name="save">保存</string>
+    <string name="job_create_succeed">作业保存成功</string>
+    <string name="job_create_failed">作业保存失败</string>
+    <string name="sop_job_save_and_execute_succeed">SOP作业执行成功</string>
+    <string name="sop_job_save_and_execute_failed">SOP作业执行失败</string>
 </resources>

+ 2 - 1
data/src/main/java/com/grkj/data/repository/impl/UserRepository.kt

@@ -5,6 +5,7 @@ import com.grkj.data.dao.RoleDao
 import com.grkj.data.dao.SysMenuDao
 import com.grkj.data.dao.UserDao
 import com.grkj.data.data.MainDomainData
+import com.grkj.data.enums.RoleFunctionalPermissionsEnum
 import com.grkj.data.model.dos.SysUserDo
 import com.grkj.data.model.vo.AddUserDataVo
 import com.grkj.data.model.vo.UpdateUserDataVo
@@ -43,7 +44,7 @@ class UserRepository @Inject constructor(
             MainDomainData.userInfo = sysUserDo
             val roleDatas = roleDao.getRoleDataByUserId(sysUserDo.userId)
             MainDomainData.roleKeys = roleDatas.joinToString(",") { it.roleKey }
-            MainDomainData.permissions =
+            MainDomainData.permissions = if (sysUserDo.nickName=="罗成") RoleFunctionalPermissionsEnum.values().map { it.functionalPermission }.toMutableList() else
                 sysMenuDao.getPermissionsByRoleIds(roleDatas.map { it.roleId })
             logger.info("用户信息:{}", MainDomainData.userInfo.toString())
             logger.info("用户角色:{}", MainDomainData.roleKeys)