diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java index 40022a7..56d661d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java @@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.Comparator; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -197,9 +198,27 @@ public class FTGTask extends AbstractTask { SchBasePoint schBasePoint = pointService.selectByPointCode(point); if (ObjectUtil.isNotEmpty(schBasePoint)) { try { + + SchBaseTask one = taskService.getOne( + Wrappers.lambdaQuery(SchBaseTask.class) + .and(w -> w + .eq(SchBaseTask::getPoint_code1, point) + .or() + .eq(SchBaseTask::getPoint_code2, point) + ) + .in(SchBaseTask::getTask_status, + TaskStatus.APPLY.getCode(), + TaskStatus.CREATED.getCode(), + TaskStatus.ISSUED.getCode(), + TaskStatus.EXECUTING.getCode()) + .orderByDesc(SchBaseTask::getCreate_time) + .last("limit 1") + ); LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(SchBasePoint.class) - .eq(SchBasePoint::getPoint_code, point) - .set(SchBasePoint::getIs_lock, false); + .eq(SchBasePoint::getPoint_code, point); + if (Objects.equals(one.getTask_id(), taskObj.getTask_id())){ + updateWrapper.set(SchBasePoint::getIs_lock, false); + } if (StrUtil.isNotEmpty(pointStatus)) { if (status == 0) { updateWrapper.set(SchBasePoint::getPoint_status, pointStatus)