|
|
@@ -5,21 +5,24 @@ import androidx.core.view.isVisible
|
|
|
import androidx.fragment.app.viewModels
|
|
|
import coil.load
|
|
|
import com.drake.brv.BindingAdapter
|
|
|
+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.data.Type
|
|
|
import com.grkj.data.model.dos.WorkflowStep
|
|
|
import com.grkj.data.model.vo.JobPointVo
|
|
|
import com.grkj.data.model.vo.JobTicketGroupDataVo
|
|
|
+import com.grkj.data.model.vo.JobTicketGroupInfoVo
|
|
|
import com.grkj.data.model.vo.JobUserVo
|
|
|
-import com.grkj.data.model.vo.PointManageVo
|
|
|
-import com.grkj.data.model.vo.UserManageVo
|
|
|
import com.grkj.iscs.R
|
|
|
import com.grkj.iscs.common.DataTransferConstants
|
|
|
import com.grkj.iscs.databinding.FragmentCreateSopBinding
|
|
|
import com.grkj.iscs.databinding.ItemJobWorkflowStepBinding
|
|
|
+import com.grkj.iscs.databinding.ItemLockerGroupBinding
|
|
|
import com.grkj.iscs.databinding.ItemPointGroupShowBinding
|
|
|
+import com.grkj.iscs.databinding.ItemSelectColockerMemberBinding
|
|
|
import com.grkj.iscs.databinding.ItemSelectMemberBinding
|
|
|
import com.grkj.iscs.databinding.ItemSelectPointBinding
|
|
|
import com.grkj.iscs.features.main.dialog.TextDropDownDialog
|
|
|
@@ -42,8 +45,10 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
private val viewModel: SopViewModel by viewModels()
|
|
|
private var selectedModeId: Long? = null
|
|
|
private var selectedWorkstationId: Long? = null
|
|
|
- private var selectedPointData: List<Pair<JobTicketGroupDataVo, MutableList<JobPointVo>>> = mutableListOf()
|
|
|
- private var selectedLockerData: List<Pair<JobTicketGroupDataVo, MutableList<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_sop
|
|
|
@@ -104,21 +109,21 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance()
|
|
|
.saveData(DataTransferConstants.KEY_SELECTED_POINT_DATA, selectedPointData)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
- CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
+ CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
- R.mipmap.icon_job_manage_create_sop
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
+ R.mipmap.icon_job_manage_create_sop
|
|
|
+ )
|
|
|
val isSaveSuccess = GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
|
|
|
+ )
|
|
|
logger.info("是否保存成功:${isSaveSuccess}")
|
|
|
navController.navigate(R.id.action_createSopFragment_to_selectPointFragment)
|
|
|
}
|
|
|
@@ -136,24 +141,24 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true
|
|
|
)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance()
|
|
|
.saveData(DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA, selectedLockerData)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
|
|
|
)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
- CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
+ CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
- R.mipmap.icon_job_manage_create_sop
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
+ R.mipmap.icon_job_manage_create_sop
|
|
|
+ )
|
|
|
navController.navigate(R.id.action_createSopFragment_to_selectMemberFragment)
|
|
|
}
|
|
|
binding.workflowModeSettingTv.setDebouncedClickListener {
|
|
|
@@ -162,16 +167,16 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_WORKFLOW_SETTING_MODE_ID, selectedModeId ?: 0
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_WORKFLOW_SETTING_MODE_ID, selectedModeId ?: 0
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
- CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
+ CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
- R.mipmap.icon_job_manage_create_sop
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
+ R.mipmap.icon_job_manage_create_sop
|
|
|
+ )
|
|
|
navController.navigate(R.id.action_createSopFragment_to_workflowSettingFragment)
|
|
|
}
|
|
|
binding.selectPointTv.setDebouncedClickListener {
|
|
|
@@ -180,21 +185,21 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
return@setDebouncedClickListener
|
|
|
}
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance()
|
|
|
.saveData(DataTransferConstants.KEY_SELECTED_POINT_DATA, selectedPointData)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
- CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
+ CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
- R.mipmap.icon_job_manage_create_sop
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
+ R.mipmap.icon_job_manage_create_sop
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_IS_UNLOCK_FIRST, viewModel.isUnlockFirst
|
|
|
+ )
|
|
|
navController.navigate(R.id.action_createSopFragment_to_selectPointFragment)
|
|
|
}
|
|
|
binding.selectMemberTv.setDebouncedClickListener {
|
|
|
@@ -211,21 +216,21 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
viewModel.workflowModes.find { it.modeId == selectedModeId }?.isColockSupport == true
|
|
|
)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECT_POINT_WORKSTATION_ID, selectedWorkstationId!!
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance()
|
|
|
.saveData(DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA, selectedLockerData)
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA, selectedColockerData
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
- CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_TITLE_DATA,
|
|
|
+ CommonUtils.getStr(R.string.create_sop_title).toString()
|
|
|
+ )
|
|
|
GlobalDataTempStore.getInstance().saveData(
|
|
|
- DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
- R.mipmap.icon_job_manage_create_sop
|
|
|
- )
|
|
|
+ DataTransferConstants.KEY_PREVIEW_STEP_ICON_DATA,
|
|
|
+ R.mipmap.icon_job_manage_create_sop
|
|
|
+ )
|
|
|
navController.navigate(R.id.action_createSopFragment_to_selectMemberFragment)
|
|
|
}
|
|
|
binding.pointRv.apply {
|
|
|
@@ -235,19 +240,19 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
linear(LinearLayout.HORIZONTAL)
|
|
|
}
|
|
|
}.setup {
|
|
|
- addType<Pair<String, List<JobPointVo>>>(R.layout.item_point_group_show)
|
|
|
+ addType<JobTicketGroupDataVo<JobPointVo>>(R.layout.item_point_group_show)
|
|
|
onBind {
|
|
|
onPointGroupRVBinding(this)
|
|
|
}
|
|
|
}
|
|
|
- binding.colockerRv.linear(orientation = LinearLayout.HORIZONTAL).setup {
|
|
|
- addType<UserManageVo>(R.layout.item_select_member)
|
|
|
+ binding.lockerRv.linear(LinearLayout.HORIZONTAL).dividerSpace(10).setup {
|
|
|
+ addType<JobTicketGroupDataVo<JobUserVo>>(R.layout.item_locker_group)
|
|
|
onBind {
|
|
|
- onSelectedMemberRVBinding(this)
|
|
|
+ onGroupLockerRVBinding(this)
|
|
|
}
|
|
|
}
|
|
|
binding.colockerRv.linear(orientation = LinearLayout.HORIZONTAL).setup {
|
|
|
- addType<UserManageVo>(R.layout.item_select_member)
|
|
|
+ addType<JobUserVo>(R.layout.item_select_colocker_member)
|
|
|
onBind {
|
|
|
onSelectedMemberRVBinding(this)
|
|
|
}
|
|
|
@@ -357,9 +362,37 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
- private fun BindingAdapter.BindingViewHolder.onSelectedMemberRVBinding(holder: BindingAdapter.BindingViewHolder) {
|
|
|
+ private fun BindingAdapter.BindingViewHolder.onGroupLockerRVBinding(holder: BindingAdapter.BindingViewHolder) {
|
|
|
+ val itemBinding = holder.getBinding<ItemLockerGroupBinding>()
|
|
|
+ val item = holder.getModel<JobTicketGroupDataVo<JobUserVo>>()
|
|
|
+ itemBinding.groupName.text = item.jobTicketGroupInfo.groupName
|
|
|
+ itemBinding.groupLockerRv.linear(LinearLayout.HORIZONTAL).setup {
|
|
|
+ addType<JobUserVo>(R.layout.item_select_member)
|
|
|
+ onBind {
|
|
|
+ onLockerRVBinding(this)
|
|
|
+ }
|
|
|
+ }.models = item.jobTicketGroupMemberList
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun BindingAdapter.BindingViewHolder.onLockerRVBinding(
|
|
|
+ holder: BindingAdapter.BindingViewHolder
|
|
|
+ ) {
|
|
|
val itemBinding = holder.getBinding<ItemSelectMemberBinding>()
|
|
|
- val item = holder.getModel<UserManageVo>()
|
|
|
+ val item = holder.getModel<JobUserVo>()
|
|
|
+ itemBinding.lockerName.text = item.nickName
|
|
|
+ itemBinding.lockerIcon.isSelected = true
|
|
|
+ (item.avatar
|
|
|
+ ?: viewModel.userBiometricDataVo.find { it.userId == item.userId }?.content)?.let {
|
|
|
+ if (it.isNotEmpty()) {
|
|
|
+ val avatar = ImageConvertUtils.base64ToBitmap(it.file().readText())
|
|
|
+ itemBinding.lockerIcon.load(avatar)
|
|
|
+ }
|
|
|
+ } ?: itemBinding.lockerIcon.setImageResource(R.drawable.icon_select_member)
|
|
|
+ }
|
|
|
+
|
|
|
+ private fun BindingAdapter.BindingViewHolder.onSelectedMemberRVBinding(holder: BindingAdapter.BindingViewHolder) {
|
|
|
+ val itemBinding = holder.getBinding<ItemSelectColockerMemberBinding>()
|
|
|
+ val item = holder.getModel<JobUserVo>()
|
|
|
itemBinding.lockerName.text = item.nickName
|
|
|
itemBinding.lockerIcon.isSelected = true
|
|
|
(item.avatar
|
|
|
@@ -373,14 +406,14 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
|
|
|
private fun BindingAdapter.BindingViewHolder.onPointGroupRVBinding(holder: BindingAdapter.BindingViewHolder) {
|
|
|
val itemBinding = holder.getBinding<ItemPointGroupShowBinding>()
|
|
|
- val item = holder.getModel<Pair<String, List<JobPointVo>>>()
|
|
|
- itemBinding.groupName.setText(item.first)
|
|
|
+ val item = holder.getModel<JobTicketGroupDataVo<JobPointVo>>()
|
|
|
+ itemBinding.groupName.text = item.jobTicketGroupInfo.groupName
|
|
|
itemBinding.groupPointRv.grid(6).setup {
|
|
|
addType<JobPointVo>(R.layout.item_select_point)
|
|
|
onBind {
|
|
|
onSelectedPointRVBinding(this)
|
|
|
}
|
|
|
- }.models = item.second
|
|
|
+ }.models = item.jobTicketGroupMemberList
|
|
|
}
|
|
|
|
|
|
private fun BindingAdapter.BindingViewHolder.onSelectedPointRVBinding(holder: BindingAdapter.BindingViewHolder) {
|
|
|
@@ -396,50 +429,48 @@ class CreateSopFragment : BaseFormFragment<FragmentCreateSopBinding>() {
|
|
|
.hasData(DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA)
|
|
|
) {
|
|
|
selectedLockerData = GlobalDataTempStore.getInstance()
|
|
|
- .getData(DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA)
|
|
|
- ?.let { return@let it as List<Pair<JobTicketGroupDataVo, MutableList<JobUserVo>>> } ?: listOf()
|
|
|
+ .getData(
|
|
|
+ DataTransferConstants.KEY_SELECTED_MEMBER_LOCKER_DATA,
|
|
|
+ Type.lockerGroupType
|
|
|
+ ) ?: listOf()
|
|
|
}
|
|
|
|
|
|
if (GlobalDataTempStore.getInstance()
|
|
|
.hasData(DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA)
|
|
|
) {
|
|
|
selectedColockerData = GlobalDataTempStore.getInstance()
|
|
|
- .getData(DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA)
|
|
|
- ?.let { return@let it as List<JobUserVo> } ?: listOf()
|
|
|
+ .getData(DataTransferConstants.KEY_SELECTED_MEMBER_COLOCKER_DATA) ?: listOf()
|
|
|
}
|
|
|
if (GlobalDataTempStore.getInstance()
|
|
|
.hasData(DataTransferConstants.KEY_SELECTED_POINT_DATA)
|
|
|
) {
|
|
|
selectedPointData = GlobalDataTempStore.getInstance()
|
|
|
- .getData(DataTransferConstants.KEY_SELECTED_POINT_DATA)
|
|
|
- ?.let { return@let it as List<Pair<JobTicketGroupDataVo, MutableList<JobPointVo>>> } ?: listOf()
|
|
|
+ .getData(
|
|
|
+ DataTransferConstants.KEY_SELECTED_POINT_DATA,
|
|
|
+ Type.pointGroupType
|
|
|
+ ) ?: listOf()
|
|
|
}
|
|
|
if (selectedPointData.isNotEmpty() && selectedLockerData.size != selectedPointData.size) {
|
|
|
selectedLockerData = selectedPointData.map {
|
|
|
- it.first to (selectedLockerData.find { lockerGroup -> it.first.groupId == lockerGroup.first.groupId }?.second
|
|
|
- ?: mutableListOf())
|
|
|
+ JobTicketGroupDataVo(
|
|
|
+ it.jobTicketGroupInfo,
|
|
|
+ selectedLockerData.find { lockerGroup -> it.jobTicketGroupInfo.groupId == lockerGroup.jobTicketGroupInfo.groupId }?.jobTicketGroupMemberList
|
|
|
+ ?: mutableListOf()
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
binding.noSelectedMemberLayout.isVisible =
|
|
|
- selectedColockerData.isEmpty() && selectedLockerData.isEmpty()
|
|
|
+ selectedColockerData.isEmpty() && selectedLockerData.flatMap { it.jobTicketGroupMemberList }
|
|
|
+ .isEmpty()
|
|
|
binding.noSelectedPointLayout.isVisible = selectedPointData.isEmpty()
|
|
|
- viewModel.getUserBiometricDataByUserIds((selectedLockerData.flatMap { it.second } + selectedColockerData).map { it.userId })
|
|
|
+ viewModel.getUserBiometricDataByUserIds((selectedLockerData.flatMap { it.jobTicketGroupMemberList } + selectedColockerData).map { it.userId })
|
|
|
.observe(this) {
|
|
|
if (selectedColockerData.isNotEmpty()) {
|
|
|
binding.colockerRv.models = selectedColockerData
|
|
|
}
|
|
|
- //todo 上锁人分组
|
|
|
-// if (selectedLockerData.isNotEmpty()) {
|
|
|
-// val userData = selectedLockerData.first()
|
|
|
-// binding.lockerName.text = userData.nickName
|
|
|
-// (userData.avatar
|
|
|
-// ?: viewModel.userBiometricDataVo.find { it.userId == userData.userId }?.content)?.let {
|
|
|
-// if (it.isNotEmpty()) {
|
|
|
-// val avatar = ImageConvertUtils.base64ToBitmap(it.file().readText())
|
|
|
-// binding.lockerIv.load(avatar)
|
|
|
-// }
|
|
|
-// } ?: binding.lockerIv.setImageResource(R.drawable.icon_select_member)
|
|
|
-// }
|
|
|
+ if (selectedLockerData.isNotEmpty()) {
|
|
|
+ binding.lockerRv.models = selectedLockerData
|
|
|
+ }
|
|
|
}
|
|
|
if (selectedPointData.isNotEmpty()) {
|
|
|
binding.pointRv.models = selectedPointData
|