fix: 修复一级需求部门更新任务时productBarcodes数组转字符串的问题

This commit is contained in:
Your Name 2026-01-22 16:44:19 +08:00
parent d364b8173c
commit cdcf0d6e19

View File

@ -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<String>,不需要转换)
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<String> 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) {