|
|
@@ -90,7 +90,7 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
|
|
|
String code;
|
|
|
do {
|
|
|
code = RandomCodeUtil.generateCode();
|
|
|
- } while (!list(Wrappers.<WorkflowWorkDO>lambdaQuery().eq(WorkflowWorkDO::getOrderNo, code)).isEmpty());
|
|
|
+ } while (!list(Wrappers.<WorkflowWorkDO>lambdaQuery().eq(WorkflowWorkDO::getOrderNo, code)).isEmpty());
|
|
|
return code;
|
|
|
}
|
|
|
|
|
|
@@ -343,20 +343,30 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
|
|
|
|
|
|
// 开启后面的节点
|
|
|
if (StringUtils.isNotBlank(nodeDO.getChildrenUuid())) {
|
|
|
- // 如果有后续节点,则开启
|
|
|
+ // 如果有后续节点,则开启,但是需要检查后续节点的所有父节点是不是都审核通过,才能开启
|
|
|
String[] split = nodeDO.getChildrenUuid().split(",");
|
|
|
List<String> list = Arrays.asList(split);
|
|
|
- workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
|
|
|
- .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
|
|
|
- .in(WorkflowWorkNodeDO::getUuid, list)
|
|
|
- .set(WorkflowWorkNodeDO::getApprovalStatus, "running")
|
|
|
- .set(WorkflowWorkNodeDO::getStartTime, now));
|
|
|
- // 发送消息
|
|
|
- List<WorkflowWorkNodeDO> list1 = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
- .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
|
|
|
- .in(WorkflowWorkNodeDO::getUuid, list));
|
|
|
- for (WorkflowWorkNodeDO workflowWorkNodeDO : list1) {
|
|
|
- workflowWorkNodeService.sendMessageToAdmin(workflowWorkNodeDO.getId());
|
|
|
+ for (String uuid : list) {
|
|
|
+ // 查询子节点的父节点有没有没通过或者没审核的
|
|
|
+ List<WorkflowWorkNodeDO> childNodeParents = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
|
|
|
+ .like(WorkflowWorkNodeDO::getChildrenUuid, uuid)
|
|
|
+ .ne(WorkflowWorkNodeDO::getApprovalStatus, "approved"));
|
|
|
+ if (childNodeParents.isEmpty()) {
|
|
|
+ // 如果没有除了通过的其他状态的,就可以开启
|
|
|
+ workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
|
|
|
+ .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
|
|
|
+ .eq(WorkflowWorkNodeDO::getUuid, uuid)
|
|
|
+ .set(WorkflowWorkNodeDO::getApprovalStatus, "running")
|
|
|
+ .set(WorkflowWorkNodeDO::getStartTime, now));
|
|
|
+ // 开启后,发送消息
|
|
|
+ List<WorkflowWorkNodeDO> list1 = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
|
|
|
+ .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
|
|
|
+ .eq(WorkflowWorkNodeDO::getUuid, uuid));
|
|
|
+ for (WorkflowWorkNodeDO workflowWorkNodeDO : list1) {
|
|
|
+ workflowWorkNodeService.sendMessageToAdmin(workflowWorkNodeDO.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
// 如果没有后续节点,看下是否完成整个流程
|