|
@@ -125,12 +125,13 @@ class JobTicketRepository @Inject constructor(
|
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
|
workflowStepList.forEach { workflowStep ->
|
|
workflowStepList.forEach { workflowStep ->
|
|
|
- val isJobTicketStep = IsJobTicketStep()
|
|
|
|
|
|
|
+ val isJobTicketStep =
|
|
|
|
|
+ BeanUtils.copyProperties(workflowStep, IsJobTicketStep::class.java)
|
|
|
|
|
+ ?: IsJobTicketStep()
|
|
|
isJobTicketStep.ticketId = ticketId
|
|
isJobTicketStep.ticketId = ticketId
|
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
|
- isJobTicketStep.workflowStepId = workflowStep.stepId
|
|
|
|
|
add(isJobTicketStep)
|
|
add(isJobTicketStep)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -222,12 +223,13 @@ class JobTicketRepository @Inject constructor(
|
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
|
workflowStepList.forEach { workflowStep ->
|
|
workflowStepList.forEach { workflowStep ->
|
|
|
- val isJobTicketStep = IsJobTicketStep()
|
|
|
|
|
|
|
+ val isJobTicketStep =
|
|
|
|
|
+ BeanUtils.copyProperties(workflowStep, IsJobTicketStep::class.java)
|
|
|
|
|
+ ?: IsJobTicketStep()
|
|
|
isJobTicketStep.ticketId = ticketId
|
|
isJobTicketStep.ticketId = ticketId
|
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
|
- isJobTicketStep.workflowStepId = workflowStep.stepId
|
|
|
|
|
add(isJobTicketStep)
|
|
add(isJobTicketStep)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -251,9 +253,21 @@ class JobTicketRepository @Inject constructor(
|
|
|
val groups = jobTicketDao.getGroupsByTicketIds(tickets.map { it.ticketId })
|
|
val groups = jobTicketDao.getGroupsByTicketIds(tickets.map { it.ticketId })
|
|
|
// 6. 获取作业票的上锁人数据
|
|
// 6. 获取作业票的上锁人数据
|
|
|
val lockers = jobTicketDao.getTicketUsersByTicketIds(tickets.map { it.ticketId })
|
|
val lockers = jobTicketDao.getTicketUsersByTicketIds(tickets.map { it.ticketId })
|
|
|
- // 7. 构建待办项 TodoStepJoin
|
|
|
|
|
|
|
+ .filter { it.userRole == RoleEnum.JTLOCKER.roleKey }
|
|
|
|
|
+ // 7. 获取作业票的共锁人数据
|
|
|
|
|
+ var colockers = jobTicketDao.getTicketUsersByTicketIds(tickets.map { it.ticketId })
|
|
|
|
|
+ .filter { it.userRole == RoleEnum.JTCOLOCKER.roleKey }
|
|
|
|
|
+ // 8. 构建待办项 TodoStepJoin
|
|
|
val todoList = assembleTodoStepJoins(
|
|
val todoList = assembleTodoStepJoins(
|
|
|
- tickets, modeIdToSteps, stepInstances, keyRecords, groups, lockers, userId, userName
|
|
|
|
|
|
|
+ tickets,
|
|
|
|
|
+ modeIdToSteps,
|
|
|
|
|
+ stepInstances,
|
|
|
|
|
+ keyRecords,
|
|
|
|
|
+ groups,
|
|
|
|
|
+ lockers,
|
|
|
|
|
+ colockers,
|
|
|
|
|
+ userId,
|
|
|
|
|
+ userName
|
|
|
)
|
|
)
|
|
|
// 7. 当前用户真正需要处理的
|
|
// 7. 当前用户真正需要处理的
|
|
|
return todoList
|
|
return todoList
|
|
@@ -269,6 +283,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
keyRecords: List<IsJobTicketKey>,
|
|
keyRecords: List<IsJobTicketKey>,
|
|
|
groups: List<IsJobTicketGroup>,
|
|
groups: List<IsJobTicketGroup>,
|
|
|
lockers: List<IsJobTicketUserDataVo>,
|
|
lockers: List<IsJobTicketUserDataVo>,
|
|
|
|
|
+ colockers: List<IsJobTicketUserDataVo>,
|
|
|
userId: Long,
|
|
userId: Long,
|
|
|
userName: String
|
|
userName: String
|
|
|
): List<TodoStepJoin> {
|
|
): List<TodoStepJoin> {
|
|
@@ -278,6 +293,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
val ticketId = ticket.ticketId
|
|
val ticketId = ticket.ticketId
|
|
|
val groupList = groups.filter { it.ticketId == ticketId }
|
|
val groupList = groups.filter { it.ticketId == ticketId }
|
|
|
val lockerList = lockers.filter { it.ticketId == ticketId }
|
|
val lockerList = lockers.filter { it.ticketId == ticketId }
|
|
|
|
|
+ val colockerList = colockers.filter { it.ticketId == ticketId }
|
|
|
val ticketSteps = stepInstances.filter { it.ticketId == ticketId }
|
|
val ticketSteps = stepInstances.filter { it.ticketId == ticketId }
|
|
|
val workflowSteps = modeSteps[ticket.modeId] ?: emptyList()
|
|
val workflowSteps = modeSteps[ticket.modeId] ?: emptyList()
|
|
|
val previousStepJoin: MutableList<TodoStepJoin> = mutableListOf()
|
|
val previousStepJoin: MutableList<TodoStepJoin> = mutableListOf()
|
|
@@ -285,13 +301,10 @@ class JobTicketRepository @Inject constructor(
|
|
|
ticketSteps.filter { isJobTicketStep -> isJobTicketStep.stepStatus == "0" }
|
|
ticketSteps.filter { isJobTicketStep -> isJobTicketStep.stepStatus == "0" }
|
|
|
.minByOrNull { isJobTicketStep -> isJobTicketStep.stepIndex }?.stepId
|
|
.minByOrNull { isJobTicketStep -> isJobTicketStep.stepIndex }?.stepId
|
|
|
ticketSteps.sortedBy { it.stepIndex }.forEach { step ->
|
|
ticketSteps.sortedBy { it.stepIndex }.forEach { step ->
|
|
|
- val workflowStep =
|
|
|
|
|
- workflowSteps.firstOrNull { it.stepId == step.workflowStepId } ?: return@forEach
|
|
|
|
|
-
|
|
|
|
|
when {
|
|
when {
|
|
|
// 🔐 JTLOCKER 处理:上锁 or 解锁 ➜ 必须按 group 拆
|
|
// 🔐 JTLOCKER 处理:上锁 or 解锁 ➜ 必须按 group 拆
|
|
|
- workflowStep.enableLock || workflowStep.enableUnlock -> {
|
|
|
|
|
- val type = if (workflowStep.enableLock) 0 else 1
|
|
|
|
|
|
|
+ step.enableLock || step.enableUnlock -> {
|
|
|
|
|
+ val type = if (step.enableLock) 0 else 1
|
|
|
val keys = keyRecords.filter {
|
|
val keys = keyRecords.filter {
|
|
|
it.ticketId == ticketId && it.ticketType == type && it.delFlag == "0"
|
|
it.ticketId == ticketId && it.ticketType == type && it.delFlag == "0"
|
|
|
}
|
|
}
|
|
@@ -302,8 +315,9 @@ class JobTicketRepository @Inject constructor(
|
|
|
buildTodoStepJoin(
|
|
buildTodoStepJoin(
|
|
|
step,
|
|
step,
|
|
|
ticket,
|
|
ticket,
|
|
|
- workflowStep,
|
|
|
|
|
|
|
+ step,
|
|
|
lockerList,
|
|
lockerList,
|
|
|
|
|
+ colockerList,
|
|
|
it.id,
|
|
it.id,
|
|
|
it.groupName,
|
|
it.groupName,
|
|
|
null
|
|
null
|
|
@@ -323,7 +337,9 @@ class JobTicketRepository @Inject constructor(
|
|
|
buildTodoStepJoin(
|
|
buildTodoStepJoin(
|
|
|
step,
|
|
step,
|
|
|
ticket,
|
|
ticket,
|
|
|
- workflowStep, lockerList,
|
|
|
|
|
|
|
+ step,
|
|
|
|
|
+ lockerList,
|
|
|
|
|
+ colockerList,
|
|
|
key.groupId,
|
|
key.groupId,
|
|
|
groupList.find { group -> group.id == key.groupId }?.groupName,
|
|
groupList.find { group -> group.id == key.groupId }?.groupName,
|
|
|
key
|
|
key
|
|
@@ -341,18 +357,27 @@ class JobTicketRepository @Inject constructor(
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 🤝 JTCOLOCKER / RELEASE_COLOCK(不拆 group) todo 目前不需要添加共锁
|
|
|
|
|
- workflowStep.enableColock || workflowStep.enableReleaseColock -> {
|
|
|
|
|
-// val temp =buildTodoStepJoin(step, ticket, workflowStep, lockerList,null, null)
|
|
|
|
|
-// if (!previousStepJoin.isEmpty()) {
|
|
|
|
|
-// temp.previousTodoStepJoin = previousStepJoin.toList()
|
|
|
|
|
-// }
|
|
|
|
|
-// previousStepJoin.clear()
|
|
|
|
|
-// result +=temp
|
|
|
|
|
-// if (currentStepId == step.stepId) {
|
|
|
|
|
-// previousStepJoin.add(temp)
|
|
|
|
|
-// }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // 🤝 JTCOLOCKER / RELEASE_COLOCK(不拆 group)
|
|
|
|
|
+ step.enableColock || step.enableReleaseColock -> {
|
|
|
|
|
+ val temp =
|
|
|
|
|
+ buildTodoStepJoin(
|
|
|
|
|
+ step,
|
|
|
|
|
+ ticket,
|
|
|
|
|
+ step,
|
|
|
|
|
+ lockerList,
|
|
|
|
|
+ colockerList,
|
|
|
|
|
+ null,
|
|
|
|
|
+ "",
|
|
|
|
|
+ null
|
|
|
|
|
+ )
|
|
|
|
|
+ if (!previousStepJoin.isEmpty()) {
|
|
|
|
|
+ temp.previousTodoStepJoin = previousStepJoin.toList()
|
|
|
|
|
+ }
|
|
|
|
|
+ previousStepJoin.clear()
|
|
|
|
|
+ result += temp
|
|
|
|
|
+ if (currentStepId == step.stepId) {
|
|
|
|
|
+ previousStepJoin.add(temp)
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 除了特殊的剩下的都是步骤确认
|
|
// 除了特殊的剩下的都是步骤确认
|
|
@@ -360,8 +385,9 @@ class JobTicketRepository @Inject constructor(
|
|
|
val temp = buildTodoStepJoin(
|
|
val temp = buildTodoStepJoin(
|
|
|
step,
|
|
step,
|
|
|
ticket,
|
|
ticket,
|
|
|
- workflowStep,
|
|
|
|
|
|
|
+ step,
|
|
|
lockerList,
|
|
lockerList,
|
|
|
|
|
+ colockerList,
|
|
|
null,
|
|
null,
|
|
|
"",
|
|
"",
|
|
|
null
|
|
null
|
|
@@ -389,8 +415,9 @@ class JobTicketRepository @Inject constructor(
|
|
|
private fun buildTodoStepJoin(
|
|
private fun buildTodoStepJoin(
|
|
|
step: IsJobTicketStep,
|
|
step: IsJobTicketStep,
|
|
|
ticket: IsJobTicket,
|
|
ticket: IsJobTicket,
|
|
|
- workflowStep: WorkflowStep,
|
|
|
|
|
|
|
+ workflowStep: IsJobTicketStep,
|
|
|
lockers: List<IsJobTicketUserDataVo>,
|
|
lockers: List<IsJobTicketUserDataVo>,
|
|
|
|
|
+ colockers: List<IsJobTicketUserDataVo>,
|
|
|
groupId: Long?,
|
|
groupId: Long?,
|
|
|
groupName: String?,
|
|
groupName: String?,
|
|
|
key: IsJobTicketKey?,
|
|
key: IsJobTicketKey?,
|
|
@@ -425,6 +452,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
|
|
|
|
|
userRole = getUserRole(workflowStep),
|
|
userRole = getUserRole(workflowStep),
|
|
|
lockerUserId = lockers.find { it.groupId == groupId }?.userId,
|
|
lockerUserId = lockers.find { it.groupId == groupId }?.userId,
|
|
|
|
|
+ colockerUserId = colockers.map { it.userId },
|
|
|
keyStatus = getKeyStatusFromKey(key),
|
|
keyStatus = getKeyStatusFromKey(key),
|
|
|
previousTodoStepJoin = previousTodoStepJoin
|
|
previousTodoStepJoin = previousTodoStepJoin
|
|
|
).also {
|
|
).also {
|
|
@@ -450,7 +478,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
/**
|
|
/**
|
|
|
* 根据用户组获取角色
|
|
* 根据用户组获取角色
|
|
|
*/
|
|
*/
|
|
|
- private fun getUserRole(step: WorkflowStep): String? {
|
|
|
|
|
|
|
+ private fun getUserRole(step: IsJobTicketStep): String? {
|
|
|
return when {
|
|
return when {
|
|
|
step.enableLock || step.enableUnlock -> RoleEnum.JTLOCKER.roleKey
|
|
step.enableLock || step.enableUnlock -> RoleEnum.JTLOCKER.roleKey
|
|
|
step.enableColock || step.enableReleaseColock -> RoleEnum.JTCOLOCKER.roleKey
|
|
step.enableColock || step.enableReleaseColock -> RoleEnum.JTCOLOCKER.roleKey
|
|
@@ -487,13 +515,13 @@ class JobTicketRepository @Inject constructor(
|
|
|
todoStep.let { tempTodo.addAll(it) }
|
|
todoStep.let { tempTodo.addAll(it) }
|
|
|
|
|
|
|
|
// 剩下的就是 wait
|
|
// 剩下的就是 wait
|
|
|
- pendingSteps.filter { it !in todoStep }.let {
|
|
|
|
|
- tempWait.addAll(it)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ val waitSteps = pendingSteps.filter { it !in todoStep }
|
|
|
|
|
+ .sortedBy { it.stepIndex } // 可选:stepIndex小的优先
|
|
|
|
|
+ .take(waitLimit)
|
|
|
|
|
+ tempWait.addAll(waitSteps)
|
|
|
tempDone.addAll(doneSteps)
|
|
tempDone.addAll(doneSteps)
|
|
|
}
|
|
}
|
|
|
- return tempTodo.size + tempWait.take(waitLimit).toMutableList().size
|
|
|
|
|
|
|
+ return tempTodo.size + tempWait.size
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
override fun updateCoincideToUnLock(ticketDetail: TicketDetailRes, groupId: Long) {
|
|
override fun updateCoincideToUnLock(ticketDetail: TicketDetailRes, groupId: Long) {
|
|
@@ -623,23 +651,19 @@ class JobTicketRepository @Inject constructor(
|
|
|
jobTicketDao.startJob(jobTicketId, "1")
|
|
jobTicketDao.startJob(jobTicketId, "1")
|
|
|
val ticketStep = jobTicketDao.getJobTicketStepDataByTicketId(jobTicketId ?: 0)
|
|
val ticketStep = jobTicketDao.getJobTicketStepDataByTicketId(jobTicketId ?: 0)
|
|
|
val ticketData = jobTicketDao.getTicketDataByTicketId(jobTicketId ?: 0)
|
|
val ticketData = jobTicketDao.getTicketDataByTicketId(jobTicketId ?: 0)
|
|
|
- val workflowSteps = workflowStepDao.getStepsByMode(ticketData?.modeId ?: 0)
|
|
|
|
|
for (stepDataVo in ticketStep) {
|
|
for (stepDataVo in ticketStep) {
|
|
|
- val workflowStep = workflowSteps.find { it.stepId == stepDataVo.workflowStepId }
|
|
|
|
|
//如果是自动确认并且没有操作的功能,则更新步骤
|
|
//如果是自动确认并且没有操作的功能,则更新步骤
|
|
|
- if (workflowStep?.confirmType != 0 && workflowStep?.hasAnyOperationFunction() == false) {
|
|
|
|
|
|
|
+ if (stepDataVo?.confirmType != 0 && stepDataVo?.hasAnyOperationFunction() == false) {
|
|
|
stepDataVo.stepStatus = "1"
|
|
stepDataVo.stepStatus = "1"
|
|
|
BeanUtils.copyProperties(
|
|
BeanUtils.copyProperties(
|
|
|
stepDataVo, IsJobTicketStep::class.java
|
|
stepDataVo, IsJobTicketStep::class.java
|
|
|
)?.let { jobTicketStep ->
|
|
)?.let { jobTicketStep ->
|
|
|
updateTicketStepData(jobTicketStep)
|
|
updateTicketStepData(jobTicketStep)
|
|
|
- val currentWorkflowStep = workflowSteps.find {
|
|
|
|
|
- it.stepId == ticketStep.firstOrNull { it.stepStatus == "0" }?.workflowStepId
|
|
|
|
|
- }
|
|
|
|
|
- ticketData?.ticketStatus = currentWorkflowStep?.getTicketStatus() ?: ""
|
|
|
|
|
|
|
+ ticketData?.ticketStatus =
|
|
|
|
|
+ ticketStep.firstOrNull { it.stepStatus == "0" }?.getTicketStatus() ?: ""
|
|
|
updateTicketDataStatus(
|
|
updateTicketDataStatus(
|
|
|
jobTicketId ?: 0,
|
|
jobTicketId ?: 0,
|
|
|
- currentWorkflowStep?.getTicketStatus()?.toInt()
|
|
|
|
|
|
|
+ ticketStep.firstOrNull { it.stepStatus == "0" }?.getTicketStatus()?.toInt()
|
|
|
?: JobTicketStatusEnum.PROGRESSING.status.toInt()
|
|
?: JobTicketStatusEnum.PROGRESSING.status.toInt()
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|
|
@@ -890,8 +914,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
isJobTicketKey.groupId = MainDomainData.deviceTakeTicketGroupBound[ticketId]
|
|
isJobTicketKey.groupId = MainDomainData.deviceTakeTicketGroupBound[ticketId]
|
|
|
val workflowSteps = workflowStepDao.getStepsByMode(jobTicketData.modeId!!)
|
|
val workflowSteps = workflowStepDao.getStepsByMode(jobTicketData.modeId!!)
|
|
|
val ticketSteps = jobTicketDao.getJobTicketStepDataByTicketId(ticketId)
|
|
val ticketSteps = jobTicketDao.getJobTicketStepDataByTicketId(ticketId)
|
|
|
- val currentStep =
|
|
|
|
|
- workflowSteps.find { it.stepId == ticketSteps.firstOrNull { it.stepStatus == "0" }?.workflowStepId }
|
|
|
|
|
|
|
+ val currentStep = ticketSteps.firstOrNull { it.stepStatus == "0" }
|
|
|
if (currentStep?.enableLock == true) {
|
|
if (currentStep?.enableLock == true) {
|
|
|
isJobTicketKey.ticketType = 0
|
|
isJobTicketKey.ticketType = 0
|
|
|
} else if (currentStep?.enableUnlock == true) {
|
|
} else if (currentStep?.enableUnlock == true) {
|
|
@@ -944,8 +967,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
logger.info("作业票钥匙信息:${isJobTicketKeys}")
|
|
logger.info("作业票钥匙信息:${isJobTicketKeys}")
|
|
|
val workflowSteps = workflowStepDao.getStepsByMode(jobTicketData.modeId!!)
|
|
val workflowSteps = workflowStepDao.getStepsByMode(jobTicketData.modeId!!)
|
|
|
val ticketSteps = jobTicketDao.getJobTicketStepDataByTicketId(ticketId)
|
|
val ticketSteps = jobTicketDao.getJobTicketStepDataByTicketId(ticketId)
|
|
|
- val currentStep =
|
|
|
|
|
- workflowSteps.find { it.stepId == ticketSteps.firstOrNull { it.stepStatus == "0" }?.workflowStepId }
|
|
|
|
|
|
|
+ val currentStep = ticketSteps.firstOrNull { it.stepStatus == "0" }
|
|
|
val isJobTicketKey = BeanUtils.copyProperties(
|
|
val isJobTicketKey = BeanUtils.copyProperties(
|
|
|
isJobTicketKeys.firstOrNull {
|
|
isJobTicketKeys.firstOrNull {
|
|
|
it.keyId == keyId && it.groupId == groupId && ((currentStep?.enableLock == true && it.ticketType == 0) || (currentStep?.enableUnlock == true && it.ticketType == 1))
|
|
it.keyId == keyId && it.groupId == groupId && ((currentStep?.enableLock == true && it.ticketType == 0) || (currentStep?.enableUnlock == true && it.ticketType == 1))
|
|
@@ -980,10 +1002,9 @@ class JobTicketRepository @Inject constructor(
|
|
|
// 1. 取工单与模式
|
|
// 1. 取工单与模式
|
|
|
val ticketData =
|
|
val ticketData =
|
|
|
jobTicketDao.getTicketDataByTicketId(ticketId) ?: return NextJobPrompt.NO_NEW_JOB
|
|
jobTicketDao.getTicketDataByTicketId(ticketId) ?: return NextJobPrompt.NO_NEW_JOB
|
|
|
- val modeId = ticketData.modeId ?: return NextJobPrompt.NO_NEW_JOB
|
|
|
|
|
|
|
|
|
|
// 2. 取流程定义,只考虑同时含“上锁”和“解锁”的模式
|
|
// 2. 取流程定义,只考虑同时含“上锁”和“解锁”的模式
|
|
|
- val stepDefs = workflowStepDao.getStepsByMode(modeId)
|
|
|
|
|
|
|
+ val stepDefs = getJobTicketStepDataByTicketId(ticketId)
|
|
|
if (stepDefs.none { it.enableLock } || stepDefs.none { it.enableUnlock }) {
|
|
if (stepDefs.none { it.enableLock } || stepDefs.none { it.enableUnlock }) {
|
|
|
// 纯上锁或纯解锁,不在本逻辑范围内
|
|
// 纯上锁或纯解锁,不在本逻辑范围内
|
|
|
return NextJobPrompt.NO_NEW_JOB
|
|
return NextJobPrompt.NO_NEW_JOB
|
|
@@ -996,7 +1017,7 @@ class JobTicketRepository @Inject constructor(
|
|
|
// 4. 取已完成的步骤(stepStatus == "1" 表示已做过)
|
|
// 4. 取已完成的步骤(stepStatus == "1" 表示已做过)
|
|
|
val doneStepIds =
|
|
val doneStepIds =
|
|
|
jobTicketDao.getJobTicketStepDataByTicketId(ticketId).filter { it.stepStatus == "1" }
|
|
jobTicketDao.getJobTicketStepDataByTicketId(ticketId).filter { it.stepStatus == "1" }
|
|
|
- .map { it.workflowStepId }.toSet()
|
|
|
|
|
|
|
+ .map { it.stepId }.toSet()
|
|
|
logger.info("当前已经完成的步骤:${doneStepIds}")
|
|
logger.info("当前已经完成的步骤:${doneStepIds}")
|
|
|
// 5. 判断“上锁”/“解锁”哪一步已执行过
|
|
// 5. 判断“上锁”/“解锁”哪一步已执行过
|
|
|
val hasDoneLock = stepDefs.any { it.enableLock && doneStepIds.contains(it.stepId) }
|
|
val hasDoneLock = stepDefs.any { it.enableLock && doneStepIds.contains(it.stepId) }
|
|
@@ -1080,12 +1101,13 @@ class JobTicketRepository @Inject constructor(
|
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
|
workflowStepList.forEach { workflowStep ->
|
|
workflowStepList.forEach { workflowStep ->
|
|
|
- val isJobTicketStep = IsJobTicketStep()
|
|
|
|
|
|
|
+ val isJobTicketStep =
|
|
|
|
|
+ BeanUtils.copyProperties(workflowStep, IsJobTicketStep::class.java)
|
|
|
|
|
+ ?: IsJobTicketStep()
|
|
|
isJobTicketStep.ticketId = ticketId
|
|
isJobTicketStep.ticketId = ticketId
|
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
|
- isJobTicketStep.workflowStepId = workflowStep.stepId
|
|
|
|
|
add(isJobTicketStep)
|
|
add(isJobTicketStep)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1161,12 +1183,12 @@ class JobTicketRepository @Inject constructor(
|
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
val workflowStepList = workflowStepDao.getStepsByMode(modeId)
|
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
val ticketStep = mutableListOf<IsJobTicketStep>().apply {
|
|
|
workflowStepList.forEach { workflowStep ->
|
|
workflowStepList.forEach { workflowStep ->
|
|
|
- val isJobTicketStep = IsJobTicketStep()
|
|
|
|
|
|
|
+ val isJobTicketStep = BeanUtils.copyProperties(workflowStep, IsJobTicketStep::class.java)
|
|
|
|
|
+ ?: IsJobTicketStep()
|
|
|
isJobTicketStep.ticketId = ticketId
|
|
isJobTicketStep.ticketId = ticketId
|
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
isJobTicketStep.stepIndex = workflowStep.stepIndex
|
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
isJobTicketStep.stepContent = workflowStep.stepTitle
|
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
isJobTicketStep.androidStepContent = workflowStep.stepTitleShort
|
|
|
- isJobTicketStep.workflowStepId = workflowStep.stepId
|
|
|
|
|
add(isJobTicketStep)
|
|
add(isJobTicketStep)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|