Browse Source

1.编辑考核 2成绩查询 3.配置考核项

ops-management-platform-backend-dev
gjh 2 weeks ago
parent
commit
d6703fa80d
  1. 17
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationInfoController.java
  2. 9
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationTemplateController.java
  3. 2
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationInfoBo.java
  4. 11
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/dto/EvaluationDto.java
  5. 10
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/dto/EvaluationTreeDto.java
  6. 5
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IEvaluationInfoService.java
  7. 7
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IEvaluationTemplateService.java
  8. 47
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/EvaluationInfoServiceImpl.java
  9. 100
      ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/EvaluationTemplateServiceImpl.java

17
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationInfoController.java

@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.platform.domain.dto.EvaluationDto;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.idempotent.annotation.RepeatSubmit;
@ -45,6 +46,13 @@ public class EvaluationInfoController extends BaseController {
return evaluationInfoService.queryPageList(bo, pageQuery); return evaluationInfoService.queryPageList(bo, pageQuery);
} }
@SaCheckPermission("platform:evaluationInfo:listForScore")
@GetMapping("/listForScore")
public TableDataInfo<EvaluationInfoVo> listForScore(EvaluationInfoBo bo, PageQuery pageQuery) {
return evaluationInfoService.queryPageListForScore(bo, pageQuery);
}
/** /**
* 导出考核评分信息列表 * 导出考核评分信息列表
*/ */
@ -102,4 +110,13 @@ public class EvaluationInfoController extends BaseController {
@PathVariable String[] ids) { @PathVariable String[] ids) {
return toAjax(evaluationInfoService.deleteWithValidByIds(List.of(ids), true)); return toAjax(evaluationInfoService.deleteWithValidByIds(List.of(ids), true));
} }
@SaCheckPermission("platform:evaluationInfo:addBySelect")
@RepeatSubmit()
@PostMapping("/addBySelect")
public R<Void> addBySelect(@Validated(AddGroup.class) @RequestBody EvaluationDto dto) {
evaluationInfoService.addBySelect(dto);
return R.ok("创建成功!");
}
} }

9
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/EvaluationTemplateController.java

@ -1,6 +1,7 @@
package org.dromara.platform.controller; package org.dromara.platform.controller;
import java.util.List; import java.util.List;
import java.util.Map;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
@ -126,4 +127,12 @@ public class EvaluationTemplateController extends BaseController {
public R<Void> batchEdit(@Validated(EditGroup.class) @RequestBody List<EvaluationTemplate> updateList) { public R<Void> batchEdit(@Validated(EditGroup.class) @RequestBody List<EvaluationTemplate> updateList) {
return toAjax(evaluationTemplateService.batchEdit(updateList)); return toAjax(evaluationTemplateService.batchEdit(updateList));
} }
@SaCheckPermission("platform:evaluationTemplate:getTree")
@GetMapping("/getTree")
public R<Map<String, Object>> getTree() {
Map<String, Object> rs = evaluationTemplateService.getTree();
return R.ok(rs);
}
} }

2
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/EvaluationInfoBo.java

@ -9,6 +9,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
@ -52,6 +53,7 @@ public class EvaluationInfoBo extends BaseEntity {
*/ */
//@NotBlank(message = "考核时间不能为空", groups = { AddGroup.class, EditGroup.class }) //@NotBlank(message = "考核时间不能为空", groups = { AddGroup.class, EditGroup.class })
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM")
private Date checkTime; private Date checkTime;
/** /**

11
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/dto/EvaluationDto.java

@ -0,0 +1,11 @@
package org.dromara.platform.domain.dto;
import lombok.Data;
import java.util.List;
@Data
public class EvaluationDto {
private String flag;
private List<String> checkList;
}

10
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/dto/EvaluationTreeDto.java

@ -0,0 +1,10 @@
package org.dromara.platform.domain.dto;
import lombok.Data;
@Data
public class EvaluationTreeDto {
private String id;
private String largeRating;
private String smallRating;
}

5
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IEvaluationInfoService.java

@ -1,5 +1,6 @@
package org.dromara.platform.service; package org.dromara.platform.service;
import org.dromara.platform.domain.dto.EvaluationDto;
import org.dromara.platform.domain.vo.EvaluationInfoVo; import org.dromara.platform.domain.vo.EvaluationInfoVo;
import org.dromara.platform.domain.bo.EvaluationInfoBo; import org.dromara.platform.domain.bo.EvaluationInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -65,4 +66,8 @@ public interface IEvaluationInfoService {
* @return 是否删除成功 * @return 是否删除成功
*/ */
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
void addBySelect(EvaluationDto dto);
TableDataInfo<EvaluationInfoVo> queryPageListForScore(EvaluationInfoBo bo, PageQuery pageQuery);
} }

7
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IEvaluationTemplateService.java

@ -8,6 +8,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 考核评分信息-模板Service接口 * 考核评分信息-模板Service接口
@ -76,4 +77,10 @@ public interface IEvaluationTemplateService {
List<EvaluationTemplate> queryByFlag(String flag); List<EvaluationTemplate> queryByFlag(String flag);
int batchEdit(List<EvaluationTemplate> updateList); int batchEdit(List<EvaluationTemplate> updateList);
/**
* 获取树结构用于配置
* @return
*/
Map<String, Object> getTree();
} }

47
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/EvaluationInfoServiceImpl.java

@ -2,6 +2,7 @@ package org.dromara.platform.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -11,6 +12,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.platform.domain.EvaluationTemplate; import org.dromara.platform.domain.EvaluationTemplate;
import org.dromara.platform.domain.dto.EvaluationDto;
import org.dromara.platform.domain.vo.EvaluationTemplateVo;
import org.dromara.platform.mapper.EvaluationTemplateMapper; import org.dromara.platform.mapper.EvaluationTemplateMapper;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -21,6 +24,7 @@ import org.dromara.platform.mapper.EvaluationInfoMapper;
import org.dromara.platform.service.IEvaluationInfoService; import org.dromara.platform.service.IEvaluationInfoService;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 考核评分信息Service业务层处理 * 考核评分信息Service业务层处理
@ -162,4 +166,47 @@ public class EvaluationInfoServiceImpl implements IEvaluationInfoService {
} }
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
@Override
public void addBySelect(EvaluationDto dto) {
String flag = dto.getFlag();
List<String> checkList = dto.getCheckList();
checkList = checkList.stream()
.map(Long::parseLong)
.filter(id -> id <= 1000)
.map(String::valueOf)
.collect(Collectors.toList());
List<EvaluationTemplate> addList = new ArrayList<>();
for (String id : checkList) {
EvaluationTemplate template = new EvaluationTemplate();
EvaluationTemplateVo fromDb = evaluationTemplateMapper.selectVoById(id);
BeanUtils.copyProperties(fromDb, template,"id");
template.setFlag(flag);
addList.add(template);
}
LambdaQueryWrapper<EvaluationTemplate> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EvaluationTemplate::getFlag, flag);
evaluationTemplateMapper.delete(queryWrapper);
evaluationTemplateMapper.insertBatch(addList);
}
@Override
public TableDataInfo<EvaluationInfoVo> queryPageListForScore(EvaluationInfoBo bo, PageQuery pageQuery) {
if (bo.getCheckTime() == null || StringUtils.isBlank(bo.getCheckProject())){
throw new ServiceException("请同时选中项目名称和考核时间!");
//return TableDataInfo.build(new Page<>());
}
LambdaQueryWrapper<EvaluationInfo> lqw = buildQueryWrapperForScore(bo);
Page<EvaluationInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
private LambdaQueryWrapper<EvaluationInfo> buildQueryWrapperForScore(EvaluationInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EvaluationInfo> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getCheckProject()), EvaluationInfo::getCheckProject, bo.getCheckProject());
lqw.eq(bo.getCheckTime() != null, EvaluationInfo::getCheckTime, bo.getCheckTime());
return lqw;
}
} }

100
ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/EvaluationTemplateServiceImpl.java

@ -1,5 +1,9 @@
package org.dromara.platform.service.impl; package org.dromara.platform.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.executor.BatchResult; import org.apache.ibatis.executor.BatchResult;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
@ -9,6 +13,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.platform.domain.EvaluationInfo;
import org.dromara.platform.domain.dto.EvaluationTreeDto;
import org.dromara.platform.mapper.EvaluationInfoMapper;
import org.dromara.platform.service.IEvaluationInfoService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.dromara.platform.domain.bo.EvaluationTemplateBo; import org.dromara.platform.domain.bo.EvaluationTemplateBo;
import org.dromara.platform.domain.vo.EvaluationTemplateVo; import org.dromara.platform.domain.vo.EvaluationTemplateVo;
@ -16,10 +25,7 @@ import org.dromara.platform.domain.EvaluationTemplate;
import org.dromara.platform.mapper.EvaluationTemplateMapper; import org.dromara.platform.mapper.EvaluationTemplateMapper;
import org.dromara.platform.service.IEvaluationTemplateService; import org.dromara.platform.service.IEvaluationTemplateService;
import java.util.Comparator; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -30,9 +36,14 @@ import java.util.stream.Collectors;
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
@Slf4j
public class EvaluationTemplateServiceImpl implements IEvaluationTemplateService { public class EvaluationTemplateServiceImpl implements IEvaluationTemplateService {
private final EvaluationTemplateMapper baseMapper; private final EvaluationTemplateMapper baseMapper;
@Resource
private IEvaluationInfoService evaluationInfoService;
@Resource
private EvaluationInfoMapper evaluationInfoMapper;
/** /**
* 查询考核评分信息-模板 * 查询考核评分信息-模板
@ -149,6 +160,7 @@ public class EvaluationTemplateServiceImpl implements IEvaluationTemplateService
if (StringUtils.isNotBlank(flag)) { if (StringUtils.isNotBlank(flag)) {
LambdaQueryWrapper<EvaluationTemplate> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<EvaluationTemplate> lqw = Wrappers.lambdaQuery();
lqw.eq(EvaluationTemplate::getFlag, flag); lqw.eq(EvaluationTemplate::getFlag, flag);
List<EvaluationTemplate> evaluationTemplates = baseMapper.selectList(lqw); List<EvaluationTemplate> evaluationTemplates = baseMapper.selectList(lqw);
List<EvaluationTemplate> sortedRecords = evaluationTemplates.stream() List<EvaluationTemplate> sortedRecords = evaluationTemplates.stream()
@ -164,6 +176,86 @@ public class EvaluationTemplateServiceImpl implements IEvaluationTemplateService
public int batchEdit(List<EvaluationTemplate> updateList) { public int batchEdit(List<EvaluationTemplate> updateList) {
List<BatchResult> batchResults = baseMapper.updateById(updateList); List<BatchResult> batchResults = baseMapper.updateById(updateList);
int size = batchResults.size(); int size = batchResults.size();
if (size>0) {
String flag = updateList.get(0).getFlag();
// 定义变量用于累加总分和扣分
double totalSumRating = 0;
double totalSubRating = 0;
for (EvaluationTemplate item : updateList) {
// 累加总分
if (item.getSumRating() != null) {
totalSumRating += item.getSumRating();
}
// 累加扣分
if (item.getSubRating() != null) {
totalSubRating += item.getSubRating();
}
}
Double finalScore = totalSumRating - totalSubRating;
LambdaUpdateWrapper<EvaluationInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(EvaluationInfo::getId, flag);
updateWrapper.set(EvaluationInfo::getCheckRating, finalScore);
int update = evaluationInfoMapper.update(null, updateWrapper);
if (update>0){
log.info("批量修改成功,考核分数为{}",finalScore);
}
}
return size; return size;
} }
@Override
public Map<String, Object> getTree() {
// 1.封装数据
List<EvaluationTreeDto> dtoList = new ArrayList<>();
LambdaUpdateWrapper<EvaluationTemplate> queryWrapper = new LambdaUpdateWrapper<>();
queryWrapper.eq(EvaluationTemplate::getFlag, "模板1");
List<EvaluationTemplate> evaluationTemplates = baseMapper.selectList(queryWrapper);
for (EvaluationTemplate template : evaluationTemplates) {
EvaluationTreeDto evaluationTreeDto = new EvaluationTreeDto();
BeanUtils.copyProperties(template, evaluationTreeDto);
dtoList.add(evaluationTreeDto);
}
if (CollectionUtil.isNotEmpty(dtoList)){
return buildTreeWithUniqueId(dtoList);
}
return null;
}
private Map<String, Object> buildTreeWithUniqueId(List<EvaluationTreeDto> list) {
// 构建树状结构
Map<String, List<EvaluationTreeDto>> treeMap = list.stream()
.collect(Collectors.groupingBy(EvaluationTreeDto::getLargeRating));
// 将树状结构转换为适合JSON传输的格式,并为每个 largeRating 分配唯一ID
List<Map<String, Object>> result = new ArrayList<>();
for (Map.Entry<String, List<EvaluationTreeDto>> entry : treeMap.entrySet()) {
Map<String, Object> node = new HashMap<>();
String uniqueId = generateUniqueId();// 生成唯一ID
node.put("id", uniqueId); // 添加唯一ID
node.put("name", entry.getKey()); // largeRating 名称
List<Map<String, String>> children = entry.getValue().stream()
.map(dto -> {
Map<String, String> child = new HashMap<>();
child.put("id", dto.getId());
child.put("name", dto.getSmallRating());
return child;
}).collect(Collectors.toList());
node.put("children", children);
result.add(node);
}
return Collections.singletonMap("tree", result); // 包装为单个根节点
}
private static final Random random = new Random();
private String generateUniqueId() {
// 生成一个0到999之间的随机整数,并加上1000,确保结果在1000到1999之间
int uniqueIdInt = 1000 + random.nextInt(1000);
String uniqueId = Integer.toString(uniqueIdInt);
return uniqueId;
}
} }

Loading…
Cancel
Save