将两个方法封装为通用的方法 private static ListObject convertSheetPositionDetailDatafinal ComputeResultExportDTO result final MapString ListBigDecima
可以将这两个方法封装为一个通用的方法,根据传入的参数来确定具体的逻辑。以下是封装后的通用方法:
private static List<Object> convertSheetData(final ComputeResultExportDTO result,
final Map<String, List<BigDecimal>> scoreGroup,
final Map<String, List<BigDecimal>> honestScoreGroup,
boolean includePositionDetailData) {
final List<Object> sheetData = Lists.newArrayList();
if (includePositionDetailData) {
sheetData.add(result.getDeptName());
sheetData.add(result.getEmpName());
sheetData.add(result.getEmpCode());
sheetData.add(result.getLevelGroup());
} else {
sheetData.add(result.getLevelName());
}
sheetData.addAll(CollectionUtils.emptyIfNull(scoreGroup.get(result.getExamineEvaluationId())));
if (includePositionDetailData) {
sheetData.add(result.getSuggestedLevel());
sheetData.addAll(CollectionUtils.emptyIfNull(honestScoreGroup.get(result.getExamineEvaluationId())));
sheetData.add(result.getTotalScore());
}
sheetData.add(result.getWeightGroupName());
return sheetData;
}
使用方法:
List<Object> sheetData1 = convertSheetData(result, scoreGroup, honestScoreGroup, true);
List<Object> sheetData2 = convertSheetData(result, scoreGroup, honestScoreGroup, false);
这样可以根据includePositionDetailData参数的值来决定是否包含convertSheetPositionDetailData方法中的逻辑。
原文地址: https://www.cveoy.top/t/topic/i6bt 著作权归作者所有。请勿转载和采集!