|
|
@@ -392,17 +392,15 @@ class JobTicketLogic @Inject constructor(
|
|
|
|
|
|
/** 工具:给待办挂上前置链并收集 **/
|
|
|
fun collect(join: TodoStepJoin) {
|
|
|
- if (previousStepJoin.isNotEmpty()) {
|
|
|
- join.previousTodoStepJoin = previousStepJoin.toList()
|
|
|
- }
|
|
|
+ if (previousStepJoin.isNotEmpty()) join.previousTodoStepJoin = previousStepJoin.toList()
|
|
|
stepJoins += join
|
|
|
}
|
|
|
|
|
|
- /* 1️⃣ Lock / Unlock(按 group 拆) */
|
|
|
+ // 上锁和解锁按照分组拆分
|
|
|
if (stepDef.enableLock || stepDef.enableUnlock) {
|
|
|
val action = if (stepDef.enableLock) StepAction.LOCK else StepAction.UNLOCK
|
|
|
- val type = if (stepDef.enableLock) 0 else 1 // key.ticketType
|
|
|
- val keysOfStep = keyRecords.filter { // 全部钥匙记录
|
|
|
+ val type = if (stepDef.enableLock) 0 else 1
|
|
|
+ val keysOfStep = keyRecords.filter {
|
|
|
it.ticketId == ticketId && it.ticketType == type && it.delFlag == "0"
|
|
|
}
|
|
|
|
|
|
@@ -410,29 +408,32 @@ class JobTicketLogic @Inject constructor(
|
|
|
val lockJoins = groupList.flatMap { g ->
|
|
|
val keysOfGroup = keysOfStep.filter { it.groupId == g.id }
|
|
|
|
|
|
+ // 该 group 还没取钥匙 → 占位 待办
|
|
|
if (keysOfGroup.isEmpty()) {
|
|
|
- // 该 group 还没取钥匙 → 占位 Todo
|
|
|
listOf(
|
|
|
buildTodoStepJoin(
|
|
|
- stepDef, ticket, stepDef, lockerList, colockerList, pointDatas,
|
|
|
+ stepDef, ticket,
|
|
|
+ stepDef, lockerList,
|
|
|
+ colockerList, pointDatas,
|
|
|
g.id, g.groupName, null
|
|
|
).only(action)
|
|
|
)
|
|
|
} else {
|
|
|
- // 该 group 已有钥匙记录 → 每把钥匙一条 Todo
|
|
|
+ // 该 group 已有钥匙记录 → 每把钥匙一条 待办
|
|
|
keysOfGroup.map { k ->
|
|
|
buildTodoStepJoin(
|
|
|
- stepDef, ticket, stepDef, lockerList, colockerList, pointDatas,
|
|
|
+ stepDef, ticket,
|
|
|
+ stepDef, lockerList,
|
|
|
+ colockerList, pointDatas,
|
|
|
k.groupId, g.groupName, k
|
|
|
).only(action)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
lockJoins.forEach(::collect)
|
|
|
}
|
|
|
|
|
|
- /* 2️⃣ Colock / Release(不拆 group) */
|
|
|
+ // 处理共锁
|
|
|
if (stepDef.enableColock) {
|
|
|
collect(
|
|
|
buildTodoStepJoin(
|
|
|
@@ -444,6 +445,7 @@ class JobTicketLogic @Inject constructor(
|
|
|
)
|
|
|
}
|
|
|
|
|
|
+ // 处理解除共锁
|
|
|
if (stepDef.enableReleaseColock) {
|
|
|
collect(
|
|
|
buildTodoStepJoin(
|
|
|
@@ -480,7 +482,6 @@ class JobTicketLogic @Inject constructor(
|
|
|
if (currentStepId == stepDef.stepId) {
|
|
|
previousStepJoin.addAll(stepJoins)
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|