diff --git a/backend/src/main/java/com/designhub/service/TaskService.java b/backend/src/main/java/com/designhub/service/TaskService.java index 205c9d8..d55d5d1 100644 --- a/backend/src/main/java/com/designhub/service/TaskService.java +++ b/backend/src/main/java/com/designhub/service/TaskService.java @@ -509,12 +509,27 @@ public class TaskService { /** * 生成任务编号 + * 格式:TASK + yyyyMMddHHmmss + 4位随机数,确保唯一性 */ private String generateTaskNo() { - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); - String date = LocalDateTime.now().format(formatter); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + String datetime = LocalDateTime.now().format(formatter); String random = String.format("%04d", new Random().nextInt(10000)); - return "TASK" + date + random; + String taskNo = "TASK" + datetime + random; + + // 检查是否已存在,如果存在则重新生成 + int maxRetry = 10; + while (maxRetry-- > 0) { + if (taskMapper.selectOne(new LambdaQueryWrapper().eq(Task::getTaskNo, taskNo)) == null) { + return taskNo; + } + // 重新生成 + datetime = LocalDateTime.now().format(formatter); + random = String.format("%04d", new Random().nextInt(10000)); + taskNo = "TASK" + datetime + random; + } + // 如果重试10次仍然重复,添加毫秒级时间戳确保唯一 + return taskNo + System.currentTimeMillis() % 1000; } /** diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 96fa125..5355f05 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -357,6 +357,14 @@ {{ canGrabTask(task).canGrab ? '抢单' : '不可接单' }} + + + @@ -541,11 +549,7 @@
-
-
- 任务编号 - {{ task.isSubTask ? task.itemNo : task.taskNo }} -
+
任务类型 {{ getTaskTypeName(task.taskTypeId, task.taskTypeName, task.taskSubType) }} @@ -861,11 +865,7 @@
-
-
- 任务编号 - {{ task.isSubTask ? task.itemNo : task.taskNo }} -
+
任务类型 {{ getTaskTypeName(task.taskTypeId, task.taskTypeName, task.taskSubType) }} @@ -997,8 +997,12 @@
- +