package edu.sjtu.infosec.ismp.manager.RAM.service; import java.util.List; import java.util.Map; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseInfoProj; import edu.sjtu.infosec.ismp.manager.RAM.model.AsseKnowDynaAsseValue; import edu.sjtu.infosec.ismp.security.Domain; /** * 应用层 报表生成Manager接口. * */ public interface ReportService { /** * 总体报告 * @param projId * 测评机构Id * @return * 总风险点个数、高级别风险个数、中级别风险个数、低级别风险个数 **/ Map totalReport(Integer projId); /** * 保存项目总体评估对象 * @param dynaAsseValue * 项目总体评估对象 **/ void saveOrUpdateDynaAsseValue(AsseKnowDynaAsseValue dynaAsseValue); /** * 查询项目总体评估对象 * @param projId * 测评机构Id * @return 项目总体评估对象 **/ AsseKnowDynaAsseValue findByProjId(Integer projId); /** * 各委办局业务及支撑资产清单 * @param inst * 委办局对象 * @return 业务名称、业务重要性和对应资产 **/ List businessImportanceReport(Domain domain); /** * 各委办局的资产及其重要性报告 * @param inst * 委办局对象 * @return * 不同重要等级资产统计饼状图所需数据 * 资产列表 **/ Map assetImportanceReport(Domain domain); /** * 各委办局关键资产的脆弱点及其严重性报告 * @param inst * 测评机构 * @param asseInfoProj * 测评项目 * @return * 不同严重等级的漏洞数量统计饼状图所需数据 * 不同资产各等级漏洞数目统计柱状图所需数据 * 各资产的漏洞列表 * 各漏洞的详细信息列表 **/ Map vulnSeriousReport(AsseInfoProj asseInfoProj); /** * 各委办局面临的威胁及其可能性报告 * @param projId * 测评机构Id * @return * 不同可能性等级的威胁数量统计饼状图所需数据 * 不同资产各等级威胁数目统计柱状图所需数据 * 各资产的威胁列表 * 各威胁的详细信息列表 **/ Map threatPossibilityReport(AsseInfoProj asseInfoProj); /** * 风险评估分析报告 * @param asseInfoProj * 测评机构 * @return * 不同风险等级的数量统计饼状图所需数据 * 重要资产的不同等级风险统计柱状图所需数据 * 各资产的风险列表 **/ Map assessmentAnalysisReport(AsseInfoProj asseInfoProj); void executeSend(AsseInfoProj asseInfoProj); void saveAlert(AsseInfoProj asseInfoProj)throws Exception ; List getDicCpKindList(); }