feat(perf): 查询岗位绩效考核模板时返回维度明细数据
- 添加 PerfTemplateDimensionVo 和 PerfTemplateDimension 实体类引用 - 注入 PerfTemplateDimensionMapper 数据访问层实例 - 修改 queryById 方法查询模板详情时关联查询维度明细 - 修改 queryPageList 方法分页查询时批量附加维度明细数据 - 修改 queryList 方法列表查询时批量附加维度明细数据 - 新增 attachDimensionList 私有方法实现批量填充维度明细逻辑 - 在 PerfPositionTemplateVo 中新增 dimensionList 字段存储维度明细列表 - 更新方法注释明确标识查询操作包含维度明细信息
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.klp.perf.domain.vo;
|
package com.klp.perf.domain.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.klp.common.annotation.ExcelDictFormat;
|
import com.klp.common.annotation.ExcelDictFormat;
|
||||||
@@ -55,5 +56,10 @@ public class PerfPositionTemplateVo {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 考核维度明细列表
|
||||||
|
*/
|
||||||
|
private List<PerfTemplateDimensionVo> dimensionList;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,13 +11,18 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.klp.perf.domain.bo.PerfPositionTemplateBo;
|
import com.klp.perf.domain.bo.PerfPositionTemplateBo;
|
||||||
import com.klp.perf.domain.vo.PerfPositionTemplateVo;
|
import com.klp.perf.domain.vo.PerfPositionTemplateVo;
|
||||||
|
import com.klp.perf.domain.vo.PerfTemplateDimensionVo;
|
||||||
import com.klp.perf.domain.PerfPositionTemplate;
|
import com.klp.perf.domain.PerfPositionTemplate;
|
||||||
|
import com.klp.perf.domain.PerfTemplateDimension;
|
||||||
import com.klp.perf.mapper.PerfPositionTemplateMapper;
|
import com.klp.perf.mapper.PerfPositionTemplateMapper;
|
||||||
|
import com.klp.perf.mapper.PerfTemplateDimensionMapper;
|
||||||
import com.klp.perf.service.IPerfPositionTemplateService;
|
import com.klp.perf.service.IPerfPositionTemplateService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 岗位绩效考核模板Service业务层处理
|
* 岗位绩效考核模板Service业务层处理
|
||||||
@@ -30,32 +35,62 @@ import java.util.Collection;
|
|||||||
public class PerfPositionTemplateServiceImpl implements IPerfPositionTemplateService {
|
public class PerfPositionTemplateServiceImpl implements IPerfPositionTemplateService {
|
||||||
|
|
||||||
private final PerfPositionTemplateMapper baseMapper;
|
private final PerfPositionTemplateMapper baseMapper;
|
||||||
|
private final PerfTemplateDimensionMapper dimensionMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询岗位绩效考核模板
|
* 查询岗位绩效考核模板(含维度明细)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PerfPositionTemplateVo queryById(Long id){
|
public PerfPositionTemplateVo queryById(Long id){
|
||||||
return baseMapper.selectVoById(id);
|
PerfPositionTemplateVo vo = baseMapper.selectVoById(id);
|
||||||
|
if (vo != null) {
|
||||||
|
LambdaQueryWrapper<PerfTemplateDimension> dimLqw = Wrappers.lambdaQuery();
|
||||||
|
dimLqw.eq(PerfTemplateDimension::getTemplateId, id);
|
||||||
|
vo.setDimensionList(dimensionMapper.selectVoList(dimLqw));
|
||||||
|
}
|
||||||
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询岗位绩效考核模板列表
|
* 查询岗位绩效考核模板列表(含维度明细)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<PerfPositionTemplateVo> queryPageList(PerfPositionTemplateBo bo, PageQuery pageQuery) {
|
public TableDataInfo<PerfPositionTemplateVo> queryPageList(PerfPositionTemplateBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<PerfPositionTemplate> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<PerfPositionTemplate> lqw = buildQueryWrapper(bo);
|
||||||
Page<PerfPositionTemplateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<PerfPositionTemplateVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
attachDimensionList(result.getRecords());
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询岗位绩效考核模板列表
|
* 查询岗位绩效考核模板列表(含维度明细)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<PerfPositionTemplateVo> queryList(PerfPositionTemplateBo bo) {
|
public List<PerfPositionTemplateVo> queryList(PerfPositionTemplateBo bo) {
|
||||||
LambdaQueryWrapper<PerfPositionTemplate> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<PerfPositionTemplate> lqw = buildQueryWrapper(bo);
|
||||||
return baseMapper.selectVoList(lqw);
|
List<PerfPositionTemplateVo> list = baseMapper.selectVoList(lqw);
|
||||||
|
attachDimensionList(list);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量填充维度明细到模板Vo列表
|
||||||
|
*/
|
||||||
|
private void attachDimensionList(List<PerfPositionTemplateVo> voList) {
|
||||||
|
if (voList == null || voList.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
List<Long> templateIds = voList.stream()
|
||||||
|
.map(PerfPositionTemplateVo::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
LambdaQueryWrapper<PerfTemplateDimension> dimLqw = Wrappers.lambdaQuery();
|
||||||
|
dimLqw.in(PerfTemplateDimension::getTemplateId, templateIds);
|
||||||
|
List<PerfTemplateDimensionVo> allDimensions = dimensionMapper.selectVoList(dimLqw);
|
||||||
|
Map<Long, List<PerfTemplateDimensionVo>> dimMap = allDimensions.stream()
|
||||||
|
.collect(Collectors.groupingBy(PerfTemplateDimensionVo::getTemplateId));
|
||||||
|
for (PerfPositionTemplateVo vo : voList) {
|
||||||
|
vo.setDimensionList(dimMap.getOrDefault(vo.getId(), Collections.emptyList()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private LambdaQueryWrapper<PerfPositionTemplate> buildQueryWrapper(PerfPositionTemplateBo bo) {
|
private LambdaQueryWrapper<PerfPositionTemplate> buildQueryWrapper(PerfPositionTemplateBo bo) {
|
||||||
|
|||||||
Reference in New Issue
Block a user