fix: 修复一级需求部门更新任务时productBarcodes数组转字符串的问题
This commit is contained in:
parent
d364b8173c
commit
cdcf0d6e19
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user