代码优化如下:

@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) {
    PositionRankingDTO positionRankingDTO = new PositionRankingDTO();
    positionRankingDTO.setScoreItemName(computeResultExportDTO.getEvaluationDimension());
    positionRankingDTO.setIdentity(computeResultExportDTO.getIdentity());
    positionRankingDTO.setEmpName(computeResultExportDTO.getEmpName());
    positionRankingDTO.setEmpCode(computeResultExportDTO.getEmpCode());
    positionRankingDTO.setScoreItemId(computeResultExportDTO.getScoreItemId());
    positionRankingDTO.setTotalScore(computeResultExportDTO.getTotalScore());
    positionRankingDTO.setIndividualScore(computeResultExportDTO.getAssessScore());
    positionRankingDTO.setRanking(MapUtils.getObject(MapUtils.getObject(scoreItemRankingMap, computeResultExportDTO.getScoreItemId()), computeResultExportDTO.getEmpCode()));
    positionRankingDTO.setAvgScore(MapUtils.getObject(MapUtils.getObject(avgMap, computeResultExportDTO.getEmpCode()), computeResultExportDTO.getScoreItemId()));
    positionRankingDTO.setSortTotalCount(MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()));
    return positionRankingDTO;
}

@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) {
    PositionRankingDTO positionRankingDTO = new PositionRankingDTO();
    positionRankingDTO.setScoreItemName(computeResultExportDTO.getEvaluationDimension());
    positionRankingDTO.setIdentity(computeResultExportDTO.getIdentity());
    positionRankingDTO.setEmpName(computeResultExportDTO.getEmpName());
    positionRankingDTO.setEmpCode(computeResultExportDTO.getEmpCode());
    positionRankingDTO.setScoreItemId(computeResultExportDTO.getScoreItemId());
    positionRankingDTO.setTotalScore(computeResultExportDTO.getTotalScore());
    positionRankingDTO.setIndividualScore(computeResultExportDTO.getAssessScore());
    positionRankingDTO.setAvgScore(computeResultExportDTO.getTotalAvg());
    positionRankingDTO.setRanking(MapUtils.getObject(totalRankingMap, computeResultExportDTO.getEmpCode()));
    positionRankingDTO.setSortTotalCount(MapUtils.getLong(countMap, computeResultExportDTO.getIdentity()));
    return positionRankingDTO;
}

主要优化点如下:

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

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

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