From 103fcf9930ebfd677fbdbbf2341d3bd9048cc71b Mon Sep 17 00:00:00 2001 From: HopeLi <1278288511@qq.com> Date: Fri, 13 Jun 2025 19:31:30 +0800 Subject: [PATCH] =?UTF-8?q?0611=20ljc=20=20=20report=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/req/report/ReportAssetTaskReq.java | 6 +-- .../engine/worker/ApplicationWorker.java | 49 ++++++++++--------- .../process/engine/worker/CodingWorker.java | 44 +++++++++-------- .../engine/worker/ScaBinaryWorker.java | 45 +++++++++-------- .../engine/worker/ScaMirrorWorker.java | 45 +++++++++-------- .../process/engine/worker/ScaSbomWorker.java | 44 +++++++++-------- 6 files changed, 126 insertions(+), 107 deletions(-) diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/report/ReportAssetTaskReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/report/ReportAssetTaskReq.java index a1f68a9e..a95b1249 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/report/ReportAssetTaskReq.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/report/ReportAssetTaskReq.java @@ -13,16 +13,16 @@ public class ReportAssetTaskReq { private ReportAdvancedSearch advancedSearch; //报告维度 5-组件,默认为5-组件 - private Integer dimension; + private Integer dimension = 5; //报告模板id,可选,默认为默认模板 - private Integer reportTemplateId; + private Integer reportTemplateId = 1; //检测任务ID private Integer scaTaskId; //报告类型 5-excel 1-word 2-pdf 3-html 4-json,默认为5-excel - private Integer type; + private Integer type = 2; //报告名称,如果不填则会自动生成 private String reportName; diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ApplicationWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ApplicationWorker.java index c866f839..3f2ff221 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ApplicationWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ApplicationWorker.java @@ -135,24 +135,7 @@ public class ApplicationWorker extends HttpWorker { Integer scaTaskId = data.getInteger("scaTaskId"); append(context,"任务执行成功,scaTaskId为" + scaTaskId); - //回调报告生成接口 - ReportAssetTaskReq req = new ReportAssetTaskReq(); - req.setScaTaskId(scaTaskId); - ReportResp reportResp = reportService.assetReportTask(req); - if (!ObjectUtils.isEmpty(reportResp)){ - if (reportResp.getMessage().equals("success")){ - append(context,"回调报告生成接口成功"); - applicationConfigInfo.put("reportId",reportResp.getId()); - }else { - append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); - } - } - - //更新scaTaskId数据到task表 - applicationConfigInfo.put("scaTaskId",scaTaskId); - pipTask.setTaskProperties(applicationConfigInfo); - pipTaskDao.updateById(pipTask); - pollTaskStatus(restTemplate, scaTaskId,context); + pollTaskStatus(restTemplate, scaTaskId,context,applicationConfigInfo,pipTask); } else if (message.equals("应用已经存在")) { append(context,message); Integer oldScaTaskId = (Integer) applicationConfigInfo.get("scaTaskId"); @@ -163,7 +146,7 @@ public class ApplicationWorker extends HttpWorker { append(context,"重新启动任务失败"); return; } - pollTaskStatus(restTemplate, oldScaTaskId,context); + pollTaskStatus(restTemplate, oldScaTaskId,context, applicationConfigInfo, pipTask); } else { append(context,"==================SCA接口异常,调用失败================="); append(context,message); @@ -195,10 +178,13 @@ public class ApplicationWorker extends HttpWorker { /** * 轮询请求任务状态 - * @param restTemplate RestTemplate - * @param scaTaskId 任务ID + * + * @param restTemplate RestTemplate + * @param scaTaskId 任务ID + * @param applicationConfigInfo + * @param pipTask */ - public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId,BaseRunContext context) { + public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context, Map applicationConfigInfo, PipTask pipTask) { int currentPollingTimes = 0; while (currentPollingTimes < MAX_POLLING_TIMES) { try { @@ -218,6 +204,25 @@ public class ApplicationWorker extends HttpWorker { System.out.println("任务已完成,停止轮询。"); log.info("任务已完成,停止轮询。"); append(context,"任务已完成,停止状态获取。" ); + + //回调报告生成接口 + ReportAssetTaskReq req = new ReportAssetTaskReq(); + req.setScaTaskId(scaTaskId); + ReportResp reportResp = reportService.assetReportTask(req); + if (!ObjectUtils.isEmpty(reportResp)){ + if (reportResp.getMessage().equals("success")){ + append(context,"回调报告生成接口成功"); + applicationConfigInfo.put("reportId",reportResp.getId()); + }else { + append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); + } + } + + //更新scaTaskId数据到task表 + applicationConfigInfo.put("scaTaskId",scaTaskId); + pipTask.setTaskProperties(applicationConfigInfo); + pipTaskDao.updateById(pipTask); + break; } } else { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CodingWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CodingWorker.java index 959e4a7d..a87bbf5b 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CodingWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/CodingWorker.java @@ -111,25 +111,8 @@ public class CodingWorker extends HttpWorker { Integer scaTaskId = data.getInteger("scaTaskId"); append(context,"SCA-代码仓库管理节点执行成功,SCA任务ID为:" + scaTaskId); - //回调报告生成接口 - ReportAssetTaskReq req = new ReportAssetTaskReq(); - req.setScaTaskId(scaTaskId); - ReportResp reportResp = reportService.assetReportTask(req); - if (!ObjectUtils.isEmpty(reportResp)){ - if (reportResp.getMessage().equals("success")){ - append(context,"回调报告生成接口成功"); - codingConfigInfo.put("reportId",reportResp.getId()); - }else { - append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); - } - } - - //更新scaTaskId数据到task表 - codingConfigInfo.put("scaTaskId",scaTaskId); - pipTask.setTaskProperties(codingConfigInfo); - pipTaskDao.updateById(pipTask); //轮询请求状态 - pollTaskStatus(restTemplate, scaTaskId,context); + pollTaskStatus(restTemplate, scaTaskId,context,codingConfigInfo,pipTask); } else if (response.getString("message").equals("应用已经存在")){ append(context,response.getString("message")); Integer oldScaTaskId = (Integer) codingConfigInfo.get("scaTaskId"); @@ -141,7 +124,7 @@ public class CodingWorker extends HttpWorker { localVariables.put("statusCode", "-1"); } //轮询请求状态 - pollTaskStatus(restTemplate, oldScaTaskId,context); + pollTaskStatus(restTemplate, oldScaTaskId,context, codingConfigInfo, pipTask); } else { //基于第三方文档表明500状态基本属于无镜像配置,对比失败,于是打印日志为无法对比镜像 append(context,"==================SCA校验失败================="); @@ -178,8 +161,10 @@ public class CodingWorker extends HttpWorker { * * @param restTemplate * @param scaTaskId + * @param codingConfigInfo + * @param pipTask */ - public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId,BaseRunContext context) { + public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context, Map codingConfigInfo, PipTask pipTask) { int currentPollingTimes = 0; while (currentPollingTimes < MAX_POLLING_TIMES) { try { @@ -199,6 +184,25 @@ public class CodingWorker extends HttpWorker { System.out.println("任务已完成,停止轮询。"); log.info("任务已完成,停止轮询。"); append(context,"任务已完成,停止状态获取。" ); + + //回调报告生成接口 + ReportAssetTaskReq req = new ReportAssetTaskReq(); + req.setScaTaskId(scaTaskId); + ReportResp reportResp = reportService.assetReportTask(req); + if (!ObjectUtils.isEmpty(reportResp)){ + if (reportResp.getMessage().equals("success")){ + append(context,"回调报告生成接口成功"); + codingConfigInfo.put("reportId",reportResp.getId()); + }else { + append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); + } + } + + //更新scaTaskId数据到task表 + codingConfigInfo.put("scaTaskId",scaTaskId); + pipTask.setTaskProperties(codingConfigInfo); + pipTaskDao.updateById(pipTask); + break; } } else { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaBinaryWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaBinaryWorker.java index 8716a520..5dbe2a12 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaBinaryWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaBinaryWorker.java @@ -143,25 +143,7 @@ public class ScaBinaryWorker extends HttpWorker { Integer scaTaskId = data.getInteger("scaTaskId"); append(context,"SCA-BINARY节点上传成功,SCA任务ID为:" + scaTaskId); - //回调报告生成接口 - ReportAssetTaskReq req = new ReportAssetTaskReq(); - req.setScaTaskId(scaTaskId); - ReportResp reportResp = reportService.assetReportTask(req); - if (!ObjectUtils.isEmpty(reportResp)){ - if (reportResp.getMessage().equals("success")){ - append(context,"回调报告生成接口成功"); - scaBinaryConfigInfo.put("reportId",reportResp.getId()); - }else { - append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); - } - } - - //更新scaTaskId数据到task表 - scaBinaryConfigInfo.put("scaTaskId",scaTaskId); - pipTask.setTaskProperties(scaBinaryConfigInfo); - pipTaskDao.updateById(pipTask); - - pollTaskStatus(restTemplate, scaTaskId,context); + pollTaskStatus(restTemplate, scaTaskId,context,scaBinaryConfigInfo, pipTask); } else if (message.equals("应用已经存在")) { append(context,message); Integer oldScaTaskId = (Integer) scaBinaryConfigInfo.get("scaTaskId"); @@ -172,7 +154,7 @@ public class ScaBinaryWorker extends HttpWorker { append(context,"重新启动任务失败"); return; } - pollTaskStatus(restTemplate, oldScaTaskId, context); + pollTaskStatus(restTemplate, oldScaTaskId, context, scaBinaryConfigInfo,pipTask); } else { append(context,"==================SCA接口异常,调用失败================="); append(context,message); @@ -207,8 +189,10 @@ public class ScaBinaryWorker extends HttpWorker { * @param restTemplate * @param scaTaskId * @param context + * @param scaBinaryConfigInfo + * @param pipTask */ - public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context) { + public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context, Map scaBinaryConfigInfo, PipTask pipTask) { int currentPollingTimes = 0; while (currentPollingTimes < MAX_POLLING_TIMES) { try { @@ -228,6 +212,25 @@ public class ScaBinaryWorker extends HttpWorker { System.out.println("任务已完成,停止轮询。"); log.info("任务已完成,停止轮询。"); append(context,"任务已完成,停止状态获取。" ); + + //回调报告生成接口 + ReportAssetTaskReq req = new ReportAssetTaskReq(); + req.setScaTaskId(scaTaskId); + ReportResp reportResp = reportService.assetReportTask(req); + if (!ObjectUtils.isEmpty(reportResp)){ + if (reportResp.getMessage().equals("success")){ + append(context,"回调报告生成接口成功"); + scaBinaryConfigInfo.put("reportId",reportResp.getId()); + }else { + append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); + } + } + + //更新scaTaskId数据到task表 + scaBinaryConfigInfo.put("scaTaskId",scaTaskId); + pipTask.setTaskProperties(scaBinaryConfigInfo); + pipTaskDao.updateById(pipTask); + break; } } else { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaMirrorWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaMirrorWorker.java index 6fbbb463..72077ed1 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaMirrorWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaMirrorWorker.java @@ -140,25 +140,7 @@ public class ScaMirrorWorker extends HttpWorker { Integer scaTaskId = data.getInteger("scaTaskId"); append(context,"SCA-MIRROR节点执行成功,SCA任务ID为:" + scaTaskId); - //回调报告生成接口 - ReportAssetTaskReq req = new ReportAssetTaskReq(); - req.setScaTaskId(scaTaskId); - ReportResp reportResp = reportService.assetReportTask(req); - if (!ObjectUtils.isEmpty(reportResp)){ - if (reportResp.getMessage().equals("success")){ - append(context,"回调报告生成接口成功"); - scaMirrorConfigInfo.put("reportId",reportResp.getId()); - }else { - append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); - } - } - - //更新scaTaskId数据到task表 - scaMirrorConfigInfo.put("scaTaskId",scaTaskId); - pipTask.setTaskProperties(scaMirrorConfigInfo); - pipTaskDao.updateById(pipTask); - - pollTaskStatus(restTemplate, scaTaskId,context); + pollTaskStatus(restTemplate, scaTaskId,context,scaMirrorConfigInfo,pipTask); } else if (message.equals("应用已经存在")) { append(context,message); Integer oldScaTaskId = (Integer) scaMirrorConfigInfo.get("scaTaskId"); @@ -169,7 +151,7 @@ public class ScaMirrorWorker extends HttpWorker { append(context,"SCA-MIRROR节点执行失败"); return; } - pollTaskStatus(restTemplate, oldScaTaskId,context); + pollTaskStatus(restTemplate, oldScaTaskId,context, scaMirrorConfigInfo, pipTask); } else { append(context,"==================SCA接口异常,调用失败================="); append(context,message); @@ -210,8 +192,10 @@ public class ScaMirrorWorker extends HttpWorker { * * @param restTemplate * @param scaTaskId + * @param scaMirrorConfigInfo + * @param pipTask */ - public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId,BaseRunContext context) { + public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context, Map scaMirrorConfigInfo, PipTask pipTask) { int currentPollingTimes = 0; while (currentPollingTimes < MAX_POLLING_TIMES) { try { @@ -231,6 +215,25 @@ public class ScaMirrorWorker extends HttpWorker { System.out.println("任务已完成,停止轮询。"); log.info("任务已完成,停止轮询。"); append(context,"任务已完成,停止状态获取。" ); + + //回调报告生成接口 + ReportAssetTaskReq req = new ReportAssetTaskReq(); + req.setScaTaskId(scaTaskId); + ReportResp reportResp = reportService.assetReportTask(req); + if (!ObjectUtils.isEmpty(reportResp)){ + if (reportResp.getMessage().equals("success")){ + append(context,"回调报告生成接口成功"); + scaMirrorConfigInfo.put("reportId",reportResp.getId()); + }else { + append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); + } + } + + //更新scaTaskId数据到task表 + scaMirrorConfigInfo.put("scaTaskId",scaTaskId); + pipTask.setTaskProperties(scaMirrorConfigInfo); + pipTaskDao.updateById(pipTask); + break; } } else { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaSbomWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaSbomWorker.java index 55046835..36574472 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaSbomWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/ScaSbomWorker.java @@ -137,25 +137,8 @@ public class ScaSbomWorker extends HttpWorker { Integer scaTaskId = data.getInteger("scaTaskId"); append(context,"上传完毕获取scaTaskId:"+scaTaskId); - //回调报告生成接口 - ReportAssetTaskReq req = new ReportAssetTaskReq(); - req.setScaTaskId(scaTaskId); - ReportResp reportResp = reportService.assetReportTask(req); - if (!ObjectUtils.isEmpty(reportResp)){ - if (reportResp.getMessage().equals("success")){ - append(context,"回调报告生成接口成功"); - scaSbomConfigInfo.put("reportId",reportResp.getId()); - }else { - append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); - } - } - - //更新scaTaskId数据到task表 - scaSbomConfigInfo.put("scaTaskId",scaTaskId); - pipTask.setTaskProperties(scaSbomConfigInfo); - pipTaskDao.updateById(pipTask); append(context,"任务正在运行中,正在查询执行状态,当前scaTaskId :"+scaTaskId); - pollTaskStatus(restTemplate, scaTaskId,context); + pollTaskStatus(restTemplate, scaTaskId,context,scaSbomConfigInfo,pipTask); } else if (message.equals("应用已经存在")) { append(context,message); Integer oldScaTaskId = (Integer) scaSbomConfigInfo.get("scaTaskId"); @@ -166,7 +149,7 @@ public class ScaSbomWorker extends HttpWorker { if (restartResult != 0) { return; } - pollTaskStatus(restTemplate, oldScaTaskId,context); + pollTaskStatus(restTemplate, oldScaTaskId,context, scaSbomConfigInfo, pipTask); } else { append(context,"==================SCA接口异常,调用失败================="); append(context,message); @@ -201,8 +184,10 @@ public class ScaSbomWorker extends HttpWorker { * * @param restTemplate * @param scaTaskId + * @param scaSbomConfigInfo + * @param pipTask */ - public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId,BaseRunContext context) { + public void pollTaskStatus(RestTemplate restTemplate, Integer scaTaskId, BaseRunContext context, Map scaSbomConfigInfo, PipTask pipTask) { int currentPollingTimes = 0; while (currentPollingTimes < MAX_POLLING_TIMES) { try { @@ -222,6 +207,25 @@ public class ScaSbomWorker extends HttpWorker { System.out.println("任务已完成,停止轮询。"); log.info("任务已完成,停止轮询。"); append(context,"任务已完成,停止状态获取。" ); + + //回调报告生成接口 + ReportAssetTaskReq req = new ReportAssetTaskReq(); + req.setScaTaskId(scaTaskId); + ReportResp reportResp = reportService.assetReportTask(req); + if (!ObjectUtils.isEmpty(reportResp)){ + if (reportResp.getMessage().equals("success")){ + append(context,"回调报告生成接口成功"); + scaSbomConfigInfo.put("reportId",reportResp.getId()); + }else { + append(context,"回调报告生成接口失败,scaTaskId = " + scaTaskId + "=====错误原因=====" + reportResp.getMessage()); + } + } + + //更新scaTaskId数据到task表 + scaSbomConfigInfo.put("scaTaskId",scaTaskId); + pipTask.setTaskProperties(scaSbomConfigInfo); + pipTaskDao.updateById(pipTask); + break; } } else {