From cdcf0d6e19cf7abd344845b3ee713344fab871ea Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 22 Jan 2026 16:44:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E7=BA=A7?= =?UTF-8?q?=E9=9C=80=E6=B1=82=E9=83=A8=E9=97=A8=E6=9B=B4=E6=96=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=97=B6productBarcodes=E6=95=B0=E7=BB=84=E8=BD=AC?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designhub/controller/TaskController.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/designhub/controller/TaskController.java b/backend/src/main/java/com/designhub/controller/TaskController.java index 3062454..38302a9 100644 --- a/backend/src/main/java/com/designhub/controller/TaskController.java +++ b/backend/src/main/java/com/designhub/controller/TaskController.java @@ -153,12 +153,23 @@ public class TaskController { boolean hasItems = jsonNode.has("items") && jsonNode.get("items").isArray() && jsonNode.get("items").size() > 0; if (isPipeline || hasItems) { - // 流水线任务更新 - com.designhub.dto.PipelineTaskDTO dto = objectMapper.convertValue(taskData, com.designhub.dto.PipelineTaskDTO.class); + // 流水线任务更新(PipelineTaskDTO 的 productBarcodes 是 List,不需要转换) + com.designhub.dto.PipelineTaskDTO dto = objectMapper.treeToValue(jsonNode, com.designhub.dto.PipelineTaskDTO.class); taskService.updatePipelineTask(id, dto, userId); } else { - // 普通任务更新 - Task task = objectMapper.convertValue(taskData, Task.class); + // 普通任务更新:处理 productBarcodes 字段,如果是数组,转换为逗号分隔的字符串 + if (jsonNode.has("productBarcodes") && jsonNode.get("productBarcodes").isArray()) { + com.fasterxml.jackson.databind.node.ArrayNode barcodesArray = (com.fasterxml.jackson.databind.node.ArrayNode) jsonNode.get("productBarcodes"); + java.util.List barcodesList = new java.util.ArrayList<>(); + for (com.fasterxml.jackson.databind.JsonNode barcodeNode : barcodesArray) { + if (barcodeNode.isTextual()) { + barcodesList.add(barcodeNode.asText()); + } + } + String barcodesString = String.join(",", barcodesList); + ((com.fasterxml.jackson.databind.node.ObjectNode) jsonNode).put("productBarcodes", barcodesString); + } + Task task = objectMapper.treeToValue(jsonNode, Task.class); taskService.updateTask(id, task, userId); } } catch (Exception e) {