代码优化如下:

@Mapping(target = "scoreItemName", source = "computeResultExportDTO.evaluationDimension")
@Mapping(target = "identity", source = "computeResultExportDTO.identity")
@Mapping(target = "empName", source = "computeResultExportDTO.empName")
@Mapping(target = "empCode", source = "computeResultExportDTO.empCode")
@Mapping(target = "scoreItemId", source = "computeResultExportDTO.scoreItemId")
@Mapping(target = "totalScore", source = "computeResultExportDTO.totalScore")
@Mapping(target = "individualScore", source = "computeResultExportDTO.assessScore")
@Mapping(target = "sortTotalCount", expression = "java(MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()))")
PositionRankingDTO convertToScoreItemPosition(ComputeResultExportDTO computeResultExportDTO,
                                              @Context final Map<String, Long> countMap,
                                              @Context final Map<String, Map<String, BigDecimal>> avgMap,
                                              @Context final Map<String, Map<String, Integer>> scoreItemRankingMap) {
    return new PositionRankingDTO(
            computeResultExportDTO.getEvaluationDimension(),
            computeResultExportDTO.getIdentity(),
            computeResultExportDTO.getEmpName(),
            computeResultExportDTO.getEmpCode(),
            computeResultExportDTO.getScoreItemId(),
            computeResultExportDTO.getTotalScore(),
            computeResultExportDTO.getAssessScore(),
            scoreItemRankingMap.getOrDefault(computeResultExportDTO.getScoreItemId(), new HashMap<>()).getOrDefault(computeResultExportDTO.getEmpCode(), null),
            avgMap.getOrDefault(computeResultExportDTO.getEmpCode(), new HashMap<>()).getOrDefault(computeResultExportDTO.getScoreItemId(), null),
            MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()));
}

@Mapping(target = "scoreItemName", source = "computeResultExportDTO.evaluationDimension")
@Mapping(target = "identity", source = "computeResultExportDTO.identity")
@Mapping(target = "empName", source = "computeResultExportDTO.empName")
@Mapping(target = "empCode", source = "computeResultExportDTO.empCode")
@Mapping(target = "scoreItemId", source = "computeResultExportDTO.scoreItemId")
@Mapping(target = "totalScore", source = "computeResultExportDTO.totalScore")
@Mapping(target = "individualScore", source = "computeResultExportDTO.assessScore")
@Mapping(target = "avgScore", source = "computeResultExportDTO.totalAvg")
@Mapping(target = "sortTotalCount", expression = "java(MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()))")
PositionRankingDTO convertTotalPositionDTO(ComputeResultExportDTO computeResultExportDTO,
                                           @Context Map<String, Integer> totalRankingMap,
                                           @Context BigDecimal totalAvg,
                                           @Context Map<String, Long> countMap) {
    return new PositionRankingDTO(
            computeResultExportDTO.getEvaluationDimension(),
            computeResultExportDTO.getIdentity(),
            computeResultExportDTO.getEmpName(),
            computeResultExportDTO.getEmpCode(),
            computeResultExportDTO.getScoreItemId(),
            computeResultExportDTO.getTotalScore(),
            computeResultExportDTO.getAssessScore(),
            totalRankingMap.getOrDefault(computeResultExportDTO.getEmpCode(), null),
            computeResultExportDTO.getTotalAvg(),
            MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()));
}

主要优化点如下:

  1. 使用构造方法创建PositionRankingDTO对象,避免重复设置属性。
  2. @Context注解添加到方法参数上,用于指定注入的上下文对象。
  3. 在第一个方法中,直接调用computeResultExportDTO对象的相应方法,而不是通过MapUtils.getObject方法获取值。
  4. 在第二个方法中,直接使用computeResultExportDTO对象的属性值,而不是通过MapUtils.getObject方法获取值。

此外,还应该注意以下几点:

  • PositionRankingDTO对象的构造方法应该接收所有必需的属性作为参数。
  • 使用@Context注解注入的上下文对象应该在方法中使用,而不是直接传递给PositionRankingDTO对象的构造方法。
  • 尽量避免使用MapUtils.getObject方法获取值,因为该方法可能导致空指针异常。
  • 代码应该易于理解和维护,并遵循代码规范。

通过以上优化,可以提高代码效率和可读性,并降低代码维护成本。

代码优化: 优化`PositionRankingDTO`对象的创建和属性设置

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

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