From 447700029825b33f7a7ca7df5884deb6cbc58468 Mon Sep 17 00:00:00 2001 From: wanxiaoli Date: Tue, 6 Jan 2026 17:36:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/common_items.json | 24 ++++--------------- .../modules/experimentalData/dto/ItemReq.java | 12 ++++++++-- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/data/common_items.json b/data/common_items.json index a5a1a02..a952a83 100644 --- a/data/common_items.json +++ b/data/common_items.json @@ -1,22 +1,6 @@ { - "taskLocation": [ - "浙江横店", - "陕西宝鸡", - "甘肃兰州" - ], - "aircraftName": [ - "载机名称一", - "载机名称二", - "载机名称三" - ], -"sensorDescription": [ - "电阻式传感器", - "电容式‌传感器" - ], -"taskLabel": [ - "试验标签一", - "试验标签二", - "试验标签三", - "试验标签四" - ] + "taskLocation" : [ "浙江横店", "陕西宝鸡", "甘肃兰州", "标签1", "标签2", "标签3", "标签4" ], + "aircraftName" : [ "载机名称一", "载机名称二", "载机名称三" ], + "sensorDescription" : [ "电阻式传感器", "电容式‌传感器", "电容式‌传感器二" ], + "taskLabel" : [ "试验标签一", "试验标签二", "试验标签三", "试验标签四", "试验标签五" ] } \ No newline at end of file diff --git a/java/src/main/java/com/yfd/platform/modules/experimentalData/dto/ItemReq.java b/java/src/main/java/com/yfd/platform/modules/experimentalData/dto/ItemReq.java index 129adf4..980c49d 100644 --- a/java/src/main/java/com/yfd/platform/modules/experimentalData/dto/ItemReq.java +++ b/java/src/main/java/com/yfd/platform/modules/experimentalData/dto/ItemReq.java @@ -1,10 +1,11 @@ package com.yfd.platform.modules.experimentalData.dto; - +import java.util.List; public class ItemReq { private String type; // treatment | suggestion private String label; // 内容 + private List labels; // 多个标签 public String getType() { return type; @@ -21,5 +22,12 @@ public class ItemReq { public void setLabel(String label) { this.label = label; } -} + public List getLabels() { + return labels; + } + + public void setLabels(List labels) { + this.labels = labels; + } +} \ No newline at end of file From 51a2a2676b92766dd6e85eb2b5646f36cc7ca785 Mon Sep 17 00:00:00 2001 From: wanxiaoli Date: Tue, 6 Jan 2026 17:36:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommonItemController.java | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/com/yfd/platform/modules/experimentalData/controller/CommonItemController.java b/java/src/main/java/com/yfd/platform/modules/experimentalData/controller/CommonItemController.java index 52292b4..1e24217 100644 --- a/java/src/main/java/com/yfd/platform/modules/experimentalData/controller/CommonItemController.java +++ b/java/src/main/java/com/yfd/platform/modules/experimentalData/controller/CommonItemController.java @@ -3,7 +3,12 @@ package com.yfd.platform.modules.experimentalData.controller; import com.yfd.platform.modules.experimentalData.dto.ItemReq; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.io.IOException; import java.nio.file.Files; @@ -55,6 +60,33 @@ public class CommonItemController { } } + /** 新增多个标签 */ + @PostMapping("/batch") + public Map addBatch(@RequestBody ItemReq req) throws IOException { + validateForBatch(req); + + lock.writeLock().lock(); + try { + Map> data = readData(); + List list = data.computeIfAbsent(req.getType(), k -> new ArrayList<>()); + + // 批量添加不重复的标签 + for (String label : req.getLabels()) { + if (!list.contains(label)) { + list.add(label); + } + } + + writeData(data); + + Map result = new HashMap<>(); + result.put(req.getType(), list); + return success(result); + } finally { + lock.writeLock().unlock(); + } + } + /** 删除 */ @DeleteMapping public Map delete(@RequestBody ItemReq req) throws IOException { @@ -89,6 +121,15 @@ public class CommonItemController { } } + private void validateForBatch(ItemReq req) { + if (req == null + || (!"taskLocation".equals(req.getType()) && !"aircraftName".equals(req.getType()) + && !"sensorDescription".equals(req.getType()) && !"taskLabel".equals(req.getType())) + || req.getLabels() == null || req.getLabels().isEmpty()) { + throw new IllegalArgumentException("参数无效"); + } + } + private Map> readData() throws IOException { // 获取项目根目录下的data文件夹路径 String userDir = System.getProperty("user.dir");