可以将这两个方法封装为一个通用的方法,根据传入的参数来确定具体的逻辑。以下是封装后的通用方法:

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方法中的逻辑。

将两个方法封装为通用的方法 private static ListObject convertSheetPositionDetailDatafinal ComputeResultExportDTO result final MapString ListBigDecima

原文地址: https://www.cveoy.top/t/topic/i6bt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录