From af09279ac3bd80bfb58f3dfe535c9d0f60cca227 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Thu, 12 Sep 2024 10:05:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=80=83=E6=A0=B8=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=EF=BC=9B=E7=AD=89=E7=BA=A7=E7=BB=9F=E8=AE=A1=EF=BC=9B?= =?UTF-8?q?=E6=95=B4=E6=94=B9=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyt/controller/AssessTaskController.java | 14 +++++++ .../AssessTeamRatingController.java | 7 ++++ .../project/xyt/mapper/AssessTaskMapper.java | 11 +++++ .../xyt/mapper/AssessTeamRatingMapper.java | 17 +++++++- .../gunshi/project/xyt/model/AssessTask.java | 4 +- .../xyt/service/AssessTaskService.java | 41 +++++++++++++++---- .../xyt/service/AssessTeamRatingService.java | 8 ++++ 7 files changed, 89 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/AssessTaskController.java b/src/main/java/com/gunshi/project/xyt/controller/AssessTaskController.java index 3fc29d4..f728a41 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/AssessTaskController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/AssessTaskController.java @@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessResultVo; import com.gunshi.project.xyt.model.AssessTask; @@ -18,6 +19,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * 描述: 考核任务 @@ -111,6 +113,18 @@ public class AssessTaskController extends AbstractCommonFileController{ service.resultExport(id,response); } + @Operation(summary = "人员考核结果") + @PostMapping("/result/stat") + public R> resultStat(@Validated @RequestBody MonthRangeSo monthRangeSo) { + return R.ok(service.resultStat(monthRangeSo)); + } + + @Operation(summary = "等级统计") + @PostMapping("/level/stat") + public R> levelStat(@Validated @RequestBody MonthRangeSo monthRangeSo) { + return R.ok(service.levelStat(monthRangeSo)); + } + @Override public String getGroupId() { return "assessTask"; diff --git a/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java b/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java index d20d9a3..c31689b 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java @@ -2,6 +2,7 @@ package com.gunshi.project.xyt.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gunshi.core.result.R; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessRatingVo; import com.gunshi.project.xyt.entity.vo.AssessRectifyVo; @@ -68,6 +69,12 @@ public class AssessTeamRatingController extends AbstractCommonFileController{ return R.ok(service.rectify(rating)); } + @Operation(summary = "整改统计") + @PostMapping("/rectify/stat") + public R> rectifyStat(@Validated @RequestBody MonthRangeSo monthRangeSo) { + return R.ok(service.rectifyStat(monthRangeSo)); + } + @Override public String getGroupId() { return "assessTeamRating"; diff --git a/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java index c580faa..dafb4a0 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java @@ -2,6 +2,7 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessResultVo; import com.gunshi.project.xyt.model.AssessObject; @@ -100,4 +101,14 @@ public interface AssessTaskMapper extends BaseMapper { """) List myDoneTask(@Param("userId") Long userId); + + @Select(""" + + """) + List resultStat(MonthRangeSo monthRangeSo); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java index fb3e781..45bda0b 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java @@ -2,6 +2,7 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessRatingVo; import com.gunshi.project.xyt.entity.vo.AssessRectifyVo; @@ -47,13 +48,13 @@ public interface AssessTeamRatingMapper extends BaseMapper { @Select(""" """) Page listPage(Page page,@Param("obj") AssessTaskPageSo page1); + + @Select(""" + + """) + List rectifyStat(@Param("obj") MonthRangeSo monthRangeSo); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/model/AssessTask.java b/src/main/java/com/gunshi/project/xyt/model/AssessTask.java index c00c150..99ab018 100644 --- a/src/main/java/com/gunshi/project/xyt/model/AssessTask.java +++ b/src/main/java/com/gunshi/project/xyt/model/AssessTask.java @@ -73,8 +73,8 @@ public class AssessTask implements Serializable { private Long templateId; @TableField(exist = false) - @Schema(description="模板名称") - private String templateName; + @Schema(description="模板信息") + private AssessTemplate template; /** * 考核批次 diff --git a/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java b/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java index bd468cf..5628634 100644 --- a/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java +++ b/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java @@ -1,20 +1,20 @@ package com.gunshi.project.xyt.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessResultVo; +import com.gunshi.project.xyt.mapper.AssessObjectRatingMapper; import com.gunshi.project.xyt.mapper.AssessTaskMapper; import com.gunshi.project.xyt.mapper.AssessTemplateMapper; -import com.gunshi.project.xyt.model.AssessObject; -import com.gunshi.project.xyt.model.AssessTask; -import com.gunshi.project.xyt.model.AssessTeam; -import com.gunshi.project.xyt.model.AssessTemplate; +import com.gunshi.project.xyt.model.*; import com.gunshi.project.xyt.util.ExcelUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; @@ -23,9 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -47,6 +45,9 @@ public class AssessTaskService extends ServiceImpl @Autowired private AssessTemplateMapper templateMapper; + @Autowired + private AssessObjectRatingMapper objectRatingMapper; + public AssessTask saveData(AssessTask dto) { dto.setId(IdWorker.getId()); dto.setStatus(0); @@ -89,7 +90,7 @@ public class AssessTaskService extends ServiceImpl public AssessTask detail(Long id) { AssessTask task = this.getById(id); AssessTemplate template = templateMapper.selectById(task.getTemplateId()); - task.setTemplateName(template.getTemplateName()); + task.setTemplate(template); task.setFiles(fileService.getFiles(getGroupId(),id.toString())); task.setAssessTeams(assessObjectService.getTeam(id)); task.setAssessObjects(assessObjectService.getObject(id)); @@ -110,6 +111,7 @@ public class AssessTaskService extends ServiceImpl if(page.getDateRangeSo() != null && page.getDateRangeSo().getEnd() != null){ queryWrapper.le(AssessTask::getStartDate,page.getDateRangeSo().getEnd()); } + queryWrapper.orderByDesc(AssessTask::getCreateTime); Page res = this.page(page.getPageSo().toPage(), queryWrapper); if (res.getRecords() != null && res.getRecords().size() > 0) { for (AssessTask record : res.getRecords()) { @@ -181,8 +183,10 @@ public class AssessTaskService extends ServiceImpl this.updateById(task); //任务中的考核对象 List objects = assessObjectService.getObject(id); - objects.stream().forEach(o->o.setStatus(1)); + objects.stream().forEach(o->o.setStatus(9)); assessObjectService.updateBatchById(objects); + List objectIds = objects.stream().map(AssessObject::getId).collect(Collectors.toList()); + objectRatingMapper.delete(new QueryWrapper().in("object_id",objectIds)); //任务中的考核成员 List teams = assessObjectService.getTeam(id); teams.stream().forEach(o->o.setStatus(1)); @@ -200,6 +204,25 @@ public class AssessTaskService extends ServiceImpl List list = this.result(id); ExcelUtil.exportExcel(list,"考核结果",AssessResultVo.class,1,new int[]{0,4},response,"考核结果"); } + + public List resultStat(MonthRangeSo monthRangeSo) { + List list = this.baseMapper.resultStat(monthRangeSo); + if (CollectionUtils.isNotEmpty(list)) { + for (AssessTask record : list) { + record.setAssessObjects(assessObjectService.getObject(record.getId())); + } + } + return list; + } + + public Map levelStat(MonthRangeSo monthRangeSo) { + List list = this.resultStat(monthRangeSo); + if(CollectionUtils.isEmpty(list)){ + return new HashMap<>(); + } + List objectList = list.stream().map(AssessTask::getAssessObjects).flatMap(List::stream).collect(Collectors.toList()); + return objectList.stream().collect(Collectors.groupingBy(AssessObject::getAssessLevel,Collectors.counting())); + } } diff --git a/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java b/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java index a46fe28..621182d 100644 --- a/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java +++ b/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gunshi.db.dto.MonthRangeSo; import com.gunshi.project.xyt.entity.so.AssessTaskPageSo; import com.gunshi.project.xyt.entity.vo.AssessRatingVo; import com.gunshi.project.xyt.entity.vo.AssessRectifyVo; @@ -59,6 +60,7 @@ public class AssessTeamRatingService extends ServiceImpl ratings = vo.getRatings(); for(AssessTeamRating rating : ratings){ rating.setId(IdWorker.getId()); + rating.setRectifyStatus(0); fileService.save(rating.getFiles(), rating.getId().toString(), getGroupId(),getScoreType()); } Long teamId = ratings.get(0).getTeamId(); @@ -212,6 +215,11 @@ public class AssessTeamRatingService extends ServiceImpl rectifyStat(MonthRangeSo monthRangeSo) { + List list = this.baseMapper.rectifyStat(monthRangeSo); + return list.stream().collect(Collectors.groupingBy(AssessTeamRating::getRectifyStatus, Collectors.counting())); + } }