You can extract the common code from the above methods into a separate method. Here's an example:

private ComputeResultExportDTO createComputeResultExportDTO(String empCode, String empName, String levelName, String levelGroup,
                                                             String deptName, String scoreItemId, String tableName, String tableSort,
                                                             BigDecimal levelWeight, BigDecimal assessScore) {
    final ComputeResultExportDTO computeResultExportDTO = new ComputeResultExportDTO();
    computeResultExportDTO.setEmpCode(empCode);
    computeResultExportDTO.setEmpName(empName);
    computeResultExportDTO.setLevelName(levelName);
    computeResultExportDTO.setLevelGroup(levelGroup);
    computeResultExportDTO.setDeptName(deptName);
    computeResultExportDTO.setScoreItemId(scoreItemId);
    computeResultExportDTO.setTableName(tableName);
    computeResultExportDTO.setTableSort(tableSort);
    computeResultExportDTO.setLevelWeight(levelWeight);
    computeResultExportDTO.setAssessScore(assessScore);
    return computeResultExportDTO;
}

private ComputeResultExportDTO getLevelSubtotalData(final String levelName, final StatisticsResultDTO statisticsResultDTO) {
    return createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(), LEVEL_SUBTOTAL, levelName,
                                        statisticsResultDTO.getDeptName(), statisticsResultDTO.getScoreItemId(), statisticsResultDTO.getTableName(),
                                        statisticsResultDTO.getTableSort(), statisticsResultDTO.getLevelWeight(), statisticsResultDTO.getCalculationResultValue());
}

private ComputeResultExportDTO getComputeResultExportDTO(final String evaluationId, final String empNameAndCode,
                                                          final Map<String, BigDecimal> overallEvaluationScoreDict,
                                                          final Map<String, List<SuggestedLevelStatisticsDTO>> summaryGroup,
                                                          final StatisticsResultDTO statisticsResultDTO) {
    final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(),
                                                                                       COMPREHENSIVE_EVALUATION, COMPREHENSIVE_EVALUATION,
                                                                                       statisticsResultDTO.getDeptName(), statisticsResultDTO.getScoreItemId(),
                                                                                       statisticsResultDTO.getTableName(), statisticsResultDTO.getTableSort(),
                                                                                       statisticsResultDTO.getLevelWeight(), statisticsResultDTO.getCalculationResultValue());
    computeResultExportDTO.setExamineEvaluationId(evaluationId);
    computeResultExportDTO.setTotalScore(overallEvaluationScoreDict.get(empNameAndCode));
    computeResultExportDTO.setSuggestedLevel(getSuggested(summaryGroup.get(empNameAndCode)));
    return computeResultExportDTO;
}

private ComputeResultExportDTO getComputeResultExportDTO(final Map<String, BigDecimal> scoreItemIdKey, final String levelName,
                                                          final Map.Entry<String, StatisticsResultDTO> levelSubtotalValueMap) {
    final StatisticsResultDTO calculationResultDTO = levelSubtotalValueMap.getValue();
    final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(calculationResultDTO.getEmpCode(), calculationResultDTO.getEmpName(),
                                                                                       LEVEL_SUBTOTAL, levelName, null, calculationResultDTO.getScoreItemId(),
                                                                                       null, calculationResultDTO.getTableSort(), calculationResultDTO.getLevelWeight(),
                                                                                       calculationResultDTO.getCalculationResultValue());
    computeResultExportDTO.setTotalScore(calculationResultDTO.getCalculationResultValue());
    computeResultExportDTO.setScoreWight(scoreItemIdKey.get(levelSubtotalValueMap.getKey()));
    return computeResultExportDTO;
}

private ComputeResultExportDTO getComputeResultExportDTO(final String levelName, final String evaluationId,
                                                          final StatisticsResultDTO levelOverallBigDecimal,
                                                          final StatisticsResultDTO statisticsResultDTO,
                                                          final Map<String, Map<String, List<SuggestedLevelStatisticsDTO>>> subtotalGroup) {
    final ComputeResultExportDTO computeResultExportDTO = createComputeResultExportDTO(statisticsResultDTO.getEmpCode(), statisticsResultDTO.getEmpName(),
                                                                                       LEVEL_SUBTOTAL, levelName, null, statisticsResultDTO.getScoreItemId(),
                                                                                       null, statisticsResultDTO.getTableSort(), statisticsResultDTO.getLevelWeight(),
                                                                                       statisticsResultDTO.getCalculationResultValue());
    computeResultExportDTO.setExamineEvaluationId(evaluationId);
    computeResultExportDTO.setTotalScore(levelOverallBigDecimal.getCalculationResultValue());
    computeResultExportDTO.setSuggestedLevel(getSuggested(subtotalGroup.get(statisticsResultDTO.getEmpCode()).get(levelName)));
    return computeResultExportDTO;
}

Now you can reuse the createComputeResultExportDTO method in the other methods to avoid code duplication.

Java Code Optimization: Extracting Common Code for Improved Reusability

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

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