Merge branch 'master' of http://1.14.125.6:3000/mianbin/ops-pro
This commit is contained in:
commit
f4027cb186
@ -7,6 +7,7 @@ import cd.casic.ci.process.dto.req.pipeline.PipelineReq;
|
|||||||
import cd.casic.ci.process.dto.req.pipeline.PipelineUpdateReq;
|
import cd.casic.ci.process.dto.req.pipeline.PipelineUpdateReq;
|
||||||
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
||||||
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
||||||
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineUseCountResp;
|
||||||
import cd.casic.ci.process.engine.executor.PipelineExecutor;
|
import cd.casic.ci.process.engine.executor.PipelineExecutor;
|
||||||
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
||||||
import cd.casic.ci.process.enums.PiplineTriggerModeEnum;
|
import cd.casic.ci.process.enums.PiplineTriggerModeEnum;
|
||||||
@ -126,4 +127,10 @@ public class AiPipelineController {
|
|||||||
|
|
||||||
return CommonResult.success();
|
return CommonResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(path="/countPipelineByUserId")
|
||||||
|
public CommonResult<PipelineUseCountResp> countPipelineByUserId(@RequestParam("userId") @Valid Long userId){
|
||||||
|
return CommonResult.success(pipelineService.countPipelineByUserId(userId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.net.URLDecoder;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据分析 NUDT数据安全态势
|
* 数据分析 NUDT数据安全态势
|
||||||
|
*
|
||||||
* @author: Paul
|
* @author: Paul
|
||||||
* @create: 2025-07-29 13:52
|
* @create: 2025-07-29 13:52
|
||||||
*/
|
*/
|
||||||
@ -26,6 +30,9 @@ public class DataAnalysisController {
|
|||||||
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计")
|
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计")
|
||||||
@GetMapping("/userAndTaskCount")
|
@GetMapping("/userAndTaskCount")
|
||||||
public CommonResult userAndTaskDataCount(@RequestParam(required = false, value = "city") String city) {
|
public CommonResult userAndTaskDataCount(@RequestParam(required = false, value = "city") String city) {
|
||||||
|
if (city != null) {
|
||||||
|
city = URLDecoder.decode(city, StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount(city));
|
return CommonResult.success(dataAnalysisService.getUserAndTaskDataCount(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -38,15 +45,25 @@ public class DataAnalysisController {
|
|||||||
@Operation(summary = "资源分配数据概览")
|
@Operation(summary = "资源分配数据概览")
|
||||||
@GetMapping("/ResourceDistList")
|
@GetMapping("/ResourceDistList")
|
||||||
public CommonResult ResourceDistList(@RequestParam(required = false, value = "city") String city) {
|
public CommonResult ResourceDistList(@RequestParam(required = false, value = "city") String city) {
|
||||||
|
if (city != null) {
|
||||||
|
city = URLDecoder.decode(city, StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
return CommonResult.success(dataAnalysisService.getResourceDistCountList(city));
|
return CommonResult.success(dataAnalysisService.getResourceDistCountList(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "漏洞监测数据概览")
|
@Operation(summary = "漏洞监测数据概览")
|
||||||
@GetMapping("/VulMonitorDataList")
|
@GetMapping("/VulMonitorDataList")
|
||||||
public CommonResult VulMonitorDataList(@RequestParam(required = false, value = "city") String city) {
|
public CommonResult VulMonitorDataList(@RequestParam(required = false, value = "city") String city) {
|
||||||
|
if (city != null) {
|
||||||
|
city = URLDecoder.decode(city, StandardCharsets.UTF_8);
|
||||||
|
}
|
||||||
return CommonResult.success(dataAnalysisService.getVulMonitorCountList(city));
|
return CommonResult.success(dataAnalysisService.getVulMonitorCountList(city));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "人数,任务次数,漏洞总数,高危漏洞 统计 列表")
|
||||||
|
@GetMapping("/userAndTaskCountList")
|
||||||
|
public CommonResult userAndTaskCountList(@RequestParam(required = false, value = "city") String city) {
|
||||||
|
return CommonResult.success(dataAnalysisService.userAndTaskCountList(city));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package cd.casic.ci.process.dto.resp.pipeline;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: Paul
|
||||||
|
* @create: 2025-07-30 15:44
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
public class PipelineUseCountResp {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我的作业
|
||||||
|
*/
|
||||||
|
private Integer work;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我的参与
|
||||||
|
*/
|
||||||
|
private Integer involved;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 我的收藏
|
||||||
|
*/
|
||||||
|
private Integer collect;
|
||||||
|
}
|
@ -4,6 +4,7 @@ import cd.casic.ci.process.dto.resp.dataAnalysis.DataAnalysisResp;
|
|||||||
import cd.casic.ci.process.process.dataObject.volumnInfo.VulInfo;
|
import cd.casic.ci.process.process.dataObject.volumnInfo.VulInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface DataAnalysisService {
|
public interface DataAnalysisService {
|
||||||
|
|
||||||
@ -22,8 +23,5 @@ public interface DataAnalysisService {
|
|||||||
List<VulInfo> getVulMonitorCountList(String city);
|
List<VulInfo> getVulMonitorCountList(String city);
|
||||||
|
|
||||||
|
|
||||||
|
List<Map<String,DataAnalysisResp>> userAndTaskCountList(String city);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -101,4 +101,24 @@ public class DataAnalysisServiceImpl implements DataAnalysisService {
|
|||||||
public List<VulInfo> getVulMonitorCountList(String city) {
|
public List<VulInfo> getVulMonitorCountList(String city) {
|
||||||
return vulInfoDao.selectList(new QueryWrapper<VulInfo>().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city).orderByDesc(VulInfo::getCreateTime));
|
return vulInfoDao.selectList(new QueryWrapper<VulInfo>().lambda().eq(Objects.nonNull(city),VulInfo::getCity,city).orderByDesc(VulInfo::getCreateTime));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String,DataAnalysisResp>> userAndTaskCountList(String city) {
|
||||||
|
DataAnalysisResp dataAnalysisResp = getUserAndTaskDataCount(city);
|
||||||
|
List<Map<String, DataAnalysisResp>> res = new ArrayList<>();
|
||||||
|
Map<String, DataAnalysisResp> respMap = new HashMap<>();
|
||||||
|
List<VulInfo> list = vulInfoDao.selectList();
|
||||||
|
Map<String, Long> map = list.stream().collect(Collectors.groupingBy(VulInfo::getCity, Collectors.counting()));
|
||||||
|
Map<String, Long> perilous = list.stream().filter(obj -> obj.getSeverity().equals(2)).collect(Collectors.groupingBy(VulInfo::getCity, Collectors.counting()));
|
||||||
|
|
||||||
|
map.entrySet().forEach(p->{
|
||||||
|
String key = p.getKey();
|
||||||
|
Long perilousVulSUM = perilous.get(key);
|
||||||
|
dataAnalysisResp.setVulSUM(p.getValue().toString());
|
||||||
|
dataAnalysisResp.setPerilousVulSUM(perilousVulSUM==null?"0":perilousVulSUM.toString());
|
||||||
|
respMap.put(key, dataAnalysisResp);
|
||||||
|
});
|
||||||
|
res.add(respMap);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.pipeline;
|
|||||||
import cd.casic.ci.process.dto.req.pipeline.*;
|
import cd.casic.ci.process.dto.req.pipeline.*;
|
||||||
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
||||||
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
||||||
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineUseCountResp;
|
||||||
import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
|
import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
|
||||||
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
||||||
import cd.casic.framework.commons.pojo.PageResult;
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
@ -41,4 +42,6 @@ public interface PipelineService extends IService<PipPipeline> {
|
|||||||
Boolean targetVersionInUse(List<String> targetVersionId);
|
Boolean targetVersionInUse(List<String> targetVersionId);
|
||||||
|
|
||||||
String aiCreatePipeline(@Valid AiPipelineCreateReq req);
|
String aiCreatePipeline(@Valid AiPipelineCreateReq req);
|
||||||
|
|
||||||
|
PipelineUseCountResp countPipelineByUserId(Long userId);
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import cd.casic.ci.process.dto.req.template.TemplateStageCreateByDataReq;
|
|||||||
import cd.casic.ci.process.dto.req.template.TemplateTaskCreateByDataReq;
|
import cd.casic.ci.process.dto.req.template.TemplateTaskCreateByDataReq;
|
||||||
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
||||||
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineFindResp;
|
||||||
|
import cd.casic.ci.process.dto.resp.pipeline.PipelineUseCountResp;
|
||||||
import cd.casic.ci.process.dto.resp.stage.StageResp;
|
import cd.casic.ci.process.dto.resp.stage.StageResp;
|
||||||
import cd.casic.ci.process.dto.resp.template.TemplateFindResp;
|
import cd.casic.ci.process.dto.resp.template.TemplateFindResp;
|
||||||
import cd.casic.ci.process.dto.resp.template.TemplateStageResp;
|
import cd.casic.ci.process.dto.resp.template.TemplateStageResp;
|
||||||
@ -24,6 +25,7 @@ import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline;
|
|||||||
import cd.casic.ci.process.process.dataObject.stage.PipStage;
|
import cd.casic.ci.process.process.dataObject.stage.PipStage;
|
||||||
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
|
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
|
||||||
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
||||||
|
import cd.casic.ci.process.process.dataObject.volumnInfo.VulInfo;
|
||||||
import cd.casic.ci.process.process.service.pipeline.PipelineService;
|
import cd.casic.ci.process.process.service.pipeline.PipelineService;
|
||||||
import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl;
|
import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl;
|
||||||
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
|
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
|
||||||
@ -49,13 +51,7 @@ import org.springframework.util.ObjectUtils;
|
|||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -729,4 +725,12 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
stringBuilder.append(seconds).append("秒");
|
stringBuilder.append(seconds).append("秒");
|
||||||
return stringBuilder.toString();
|
return stringBuilder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PipelineUseCountResp countPipelineByUserId(Long userId) {
|
||||||
|
Integer count = pipelineDao.selectCount(new QueryWrapper<PipPipeline>().lambda().eq(Objects.nonNull(userId), PipPipeline::getCreator, userId)).intValue();
|
||||||
|
Integer collect = pipelineDao.selectCount(new LambdaQueryWrapper<PipPipeline>().eq(Objects.nonNull(userId), PipPipeline::getCreator, userId)
|
||||||
|
.eq(PipPipeline::getCollect, 1)).intValue();
|
||||||
|
return PipelineUseCountResp.builder().work(count).involved(count).collect(collect).build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user