Browse Source

feat: 实现指标模板详情接口

weijianghai 1 year ago
parent
commit
c88b02ca24

+ 11 - 0
src/main/java/com/nokia/hb/controller/IndicatorTemplateController.java

@@ -4,7 +4,9 @@ import com.nokia.common.R;
 import com.nokia.hb.pojo.TreeNode;
 import com.nokia.hb.pojo.dto.AddTemplateDto;
 import com.nokia.hb.pojo.dto.DeleteTemplateDto;
+import com.nokia.hb.pojo.dto.GetTemplateDetailDto;
 import com.nokia.hb.pojo.dto.UpdateTemplateDto;
+import com.nokia.hb.pojo.vo.GetTemplateDetailVo;
 import com.nokia.hb.service.IndicatorTemplateService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -60,4 +62,13 @@ public class IndicatorTemplateController {
     public R<Object> updateTemplate(@Valid @RequestBody UpdateTemplateDto dto, HttpSession session) {
         return indicatorTemplateService.updateTemplate(dto, session);
     }
+
+    /**
+     * 指标模板详情
+     */
+    @Operation(summary = "指标模板详情")
+    @PostMapping("/api/getTemplateDetail")
+    public R<GetTemplateDetailVo> getTemplateDetail(@Valid @RequestBody GetTemplateDetailDto dto) {
+        return indicatorTemplateService.getTemplateDetail(dto);
+    }
 }

+ 16 - 0
src/main/java/com/nokia/hb/dao/mapper/IndicatorTemplateItemMapper.java

@@ -2,6 +2,7 @@ package com.nokia.hb.dao.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nokia.hb.dao.entity.IndicatorTemplateItem;
+import com.nokia.hb.pojo.TreeNode;
 import com.nokia.hb.pojo.bo.IndicatorTemplateItemBo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -66,4 +67,19 @@ public interface IndicatorTemplateItemMapper extends BaseMapper<IndicatorTemplat
             + " </foreach>"
             + " </script>")
     int deleteBatch(@Param("list") List<Long> list);
+
+    /**
+     * 按模板id列表
+     *
+     * @param id id
+     * @return {@link List}<{@link IndicatorTemplateItemBo}>
+     */
+    @Select("<script>"
+            + " select iti.indicator_id as id, pci.indicator_cn as title"
+            + " from pm_parse.indicator_template_item iti"
+            + " inner join pm_parse.per_cfg_indicator pci on iti.indicator_id = pci.indicator_id"
+            + " where iti.template_id = #{id}"
+            + " order by iti.template_id, iti.indicator_id"
+            + " </script>")
+    List<TreeNode> listByTemplateId(@Param("id") Long id);
 }

+ 17 - 0
src/main/java/com/nokia/hb/pojo/dto/GetTemplateDetailDto.java

@@ -0,0 +1,17 @@
+package com.nokia.hb.pojo.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class GetTemplateDetailDto {
+    @Schema(description = "模板id", required = true)
+    @NotNull(message = "id不能为空")
+    private Long id;
+}

+ 21 - 0
src/main/java/com/nokia/hb/pojo/vo/GetTemplateDetailVo.java

@@ -0,0 +1,21 @@
+package com.nokia.hb.pojo.vo;
+
+import com.nokia.hb.pojo.TreeNode;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class GetTemplateDetailVo {
+    @Schema(description = "模板id")
+    private Long id;
+    @Schema(description = "模板名称")
+    private String templateName;
+    @Schema(description = "指标列表")
+    private List<TreeNode> list;
+}

+ 15 - 1
src/main/java/com/nokia/hb/service/IndicatorTemplateService.java

@@ -1,5 +1,4 @@
 package com.nokia.hb.service;
-
 import com.nokia.common.R;
 import com.nokia.common.exception.BizException;
 import com.nokia.hb.dao.entity.IndicatorTemplate;
@@ -10,7 +9,9 @@ import com.nokia.hb.pojo.TreeNode;
 import com.nokia.hb.pojo.bo.IndicatorTemplateItemBo;
 import com.nokia.hb.pojo.dto.AddTemplateDto;
 import com.nokia.hb.pojo.dto.DeleteTemplateDto;
+import com.nokia.hb.pojo.dto.GetTemplateDetailDto;
 import com.nokia.hb.pojo.dto.UpdateTemplateDto;
+import com.nokia.hb.pojo.vo.GetTemplateDetailVo;
 import com.nokia.hb.utils.SessionUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -113,4 +114,17 @@ public class IndicatorTemplateService {
         });
         indicatorTemplateItemMapper.insertBatch(indicatorTemplateItems);
     }
+
+    public R<GetTemplateDetailVo> getTemplateDetail(GetTemplateDetailDto dto) {
+        IndicatorTemplate indicatorTemplate = indicatorTemplateMapper.selectById(dto.getId());
+        if (indicatorTemplate == null) {
+            throw new BizException("找不到该模板");
+        }
+        List<TreeNode> list = indicatorTemplateItemMapper.listByTemplateId(dto.getId());
+        GetTemplateDetailVo vo = new GetTemplateDetailVo();
+        vo.setId(indicatorTemplate.getId());
+        vo.setTemplateName(indicatorTemplate.getTemplateName());
+        vo.setList(list);
+        return R.ok(vo);
+    }
 }