From b2e140d6d5097599cf22d2302752e1693ed4263a Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Mon, 11 Aug 2025 09:16:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E6=A0=87=E5=BA=93=EF=BC=9A=E8=81=9A?= =?UTF-8?q?=E5=90=88=E6=8C=87=E6=A0=87=E8=AF=A6=E6=83=85=EF=BC=88=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E8=81=9A=E5=90=88=E6=8C=87=E6=A0=87=E7=BC=96=E8=BE=91?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ustb/sf/controller/TargetController.java | 7 ++++ .../iet/ustb/sf/service/TargetService.java | 2 + .../sf/service/impl/TargetServiceImpl.java | 42 ++++++++++++++++++- src/main/java/iet/ustb/sf/vo/TogetherVo.java | 27 ++++++++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/main/java/iet/ustb/sf/vo/TogetherVo.java diff --git a/src/main/java/iet/ustb/sf/controller/TargetController.java b/src/main/java/iet/ustb/sf/controller/TargetController.java index ec66e54..7de0fde 100644 --- a/src/main/java/iet/ustb/sf/controller/TargetController.java +++ b/src/main/java/iet/ustb/sf/controller/TargetController.java @@ -136,4 +136,11 @@ public class TargetController { targetService.saveTogetherTarget(params); return R.ok(); } + + @Operation(summary = "聚合指标详情(点击聚合指标编辑)") + @PostMapping("/getTogethDetail") + public R getTogethDetail(@RequestBody JSONObject params) { + JSONObject result = targetService.getTogethDetail(params); + return R.ok(result); + } } diff --git a/src/main/java/iet/ustb/sf/service/TargetService.java b/src/main/java/iet/ustb/sf/service/TargetService.java index 37d1449..9bd181b 100644 --- a/src/main/java/iet/ustb/sf/service/TargetService.java +++ b/src/main/java/iet/ustb/sf/service/TargetService.java @@ -36,4 +36,6 @@ public interface TargetService extends IService { void saveSingleTarget(JSONObject params); void saveTogetherTarget(JSONObject params); + + JSONObject getTogethDetail(JSONObject params); } diff --git a/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java b/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java index 0e3baa6..361ebf6 100644 --- a/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java +++ b/src/main/java/iet/ustb/sf/service/impl/TargetServiceImpl.java @@ -1,6 +1,5 @@ package iet.ustb.sf.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -17,6 +16,7 @@ import iet.ustb.sf.service.TargetDataService; import iet.ustb.sf.service.TargetService; import iet.ustb.sf.service.UtilService; import iet.ustb.sf.util.CheckUtils; +import iet.ustb.sf.vo.TogetherVo; import jakarta.annotation.Resource; import org.apache.commons.lang3.SerializationUtils; import org.apache.commons.lang3.StringUtils; @@ -594,6 +594,46 @@ public class TargetServiceImpl extends ServiceImpl } } + @Override + public JSONObject getTogethDetail(JSONObject params) { + String id = params.getString("id").trim(); + CheckUtils.checkEmpty(id, "指标ID"); + + Target target = targetMapper.selectById(id); + ThrowUtils.throwIf(target == null, ErrorCode.PARAMS_ERROR, "指标不存在!"); + ThrowUtils.throwIf(target.getType() != 2, ErrorCode.PARAMS_ERROR, "该指标不是聚合指标!"); + + List optionList = Arrays.asList(target.getResultSql().split(",")); + List ids = optionList.stream() + .filter(option -> option.length() > 1) + .distinct() + .collect(Collectors.toList()); + List childTargetList = targetMapper.selectByIds(ids); + Map map = childTargetList.stream() + .collect(Collectors.toMap(Target::getId, Target::getName)); + + List formulaList = new ArrayList<>(); + + StringBuilder msg = new StringBuilder(); + for (String option : optionList) { + if (option.length() > 1 && !map.containsKey(option)) { + msg.append("ID为").append(option).append("的指标不存在,"); + } + formulaList.add(TogetherVo.builder() + .id(String.valueOf(formulaList.size())) + .label(option.length() > 1 ? map.get(option) : option) + .value(option) + .type(option.length() > 1 ? "" : "danger") + .build()); + } + + JSONObject jsonObject = new JSONObject(); + jsonObject.put("formulaList", formulaList); + jsonObject.put("target", target); + jsonObject.put("error", msg.isEmpty() ? "" : msg.substring(0, msg.length() - 1)); + return jsonObject; + } + /** * 指标变更后,修改对应的监控数据 * diff --git a/src/main/java/iet/ustb/sf/vo/TogetherVo.java b/src/main/java/iet/ustb/sf/vo/TogetherVo.java new file mode 100644 index 0000000..93f621b --- /dev/null +++ b/src/main/java/iet/ustb/sf/vo/TogetherVo.java @@ -0,0 +1,27 @@ +package iet.ustb.sf.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * TogetherVo + * + * @author huangge1199 + * @since 2025/8/11 9:11:24 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TogetherVo { + + private String id; + + private String label; + + private String value; + + private String type; +}