From 8ef24e532068b52db6b3d7ec85868df9ef7e4492 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Tue, 10 Sep 2024 09:27:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E8=AF=84=E5=88=86=E8=AF=A6?= =?UTF-8?q?=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AssessTeamRatingController.java | 13 ++++++-- .../project/xyt/entity/vo/AssessRatingVo.java | 9 +++++- .../project/xyt/mapper/AssessTaskMapper.java | 2 +- .../xyt/mapper/AssessTeamRatingMapper.java | 14 +++++++- .../xyt/service/AssessTaskService.java | 2 +- .../xyt/service/AssessTeamRatingService.java | 32 ++++++++++++++----- 6 files changed, 57 insertions(+), 15 deletions(-) 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 b9a2757..37c6e7c 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/AssessTeamRatingController.java @@ -12,6 +12,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; /** * 描述: 考核评分详情 @@ -40,9 +41,15 @@ public class AssessTeamRatingController extends AbstractCommonFileController{ } @Operation(summary = "我的待办/已办-查看评分详情") - @GetMapping("/detail/{teamId}") - public R> detail(@Schema(name = "teamId") @PathVariable("teamId") Long teamId) { - return R.ok(service.detail(teamId)); + @GetMapping("/do/detail/{teamId}") + public R> doDetail(@Schema(name = "teamId") @PathVariable("teamId") Long teamId) { + return R.ok(service.doDetail(teamId)); + } + + @Operation(summary = "考核任务清单-查看评分详情") + @GetMapping("/scoreDetail/{objectId}") + public R>> scoreDetail(@Schema(name = "objectId") @PathVariable("objectId") Long objectId) { + return R.ok(service.scoreDetail(objectId)); } diff --git a/src/main/java/com/gunshi/project/xyt/entity/vo/AssessRatingVo.java b/src/main/java/com/gunshi/project/xyt/entity/vo/AssessRatingVo.java index 79d7311..281fdd4 100644 --- a/src/main/java/com/gunshi/project/xyt/entity/vo/AssessRatingVo.java +++ b/src/main/java/com/gunshi/project/xyt/entity/vo/AssessRatingVo.java @@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data -public class AssessRatingVo extends AssessTeamRating{ +public class AssessRatingVo extends AssessTeamRating { @Schema(description="考核类目id") @JsonSerialize(using = ToStringSerializer.class) @@ -22,4 +22,11 @@ public class AssessRatingVo extends AssessTeamRating{ @Schema(description="标准分数") private Integer standardScore; + @Schema(description="考核成员id") + @JsonSerialize(using = ToStringSerializer.class) + private Long teamUserId; + + @Schema(description="考核成员") + private String teamUserName; + } 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 3524c87..b96b8c7 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/AssessTaskMapper.java @@ -45,7 +45,7 @@ public interface AssessTaskMapper extends BaseMapper { and t.start_date =]]> #{obj.dateRangeSo.start} - and t.end_date #{obj.dateRangeSo.end} + and t.start_date #{obj.dateRangeSo.end} and t.status = #{obj.status} 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 b9c239a..98077a0 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/AssessTeamRatingMapper.java @@ -19,7 +19,7 @@ public interface AssessTeamRatingMapper extends BaseMapper { @Select(""" """) List scoreDetail(@Param("teamId") Long teamId); + + @Select(""" + + """) + List scoreByObjectId(@Param("objectId") Long objectId); } \ No newline at end of file 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 5e6444d..242d110 100644 --- a/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java +++ b/src/main/java/com/gunshi/project/xyt/service/AssessTaskService.java @@ -95,7 +95,7 @@ public class AssessTaskService extends ServiceImpl queryWrapper.ge(AssessTask::getStartDate,page.getDateRangeSo().getStart()); } if(page.getDateRangeSo() != null && page.getDateRangeSo().getEnd() != null){ - queryWrapper.le(AssessTask::getEndDate,page.getDateRangeSo().getEnd()); + queryWrapper.le(AssessTask::getStartDate,page.getDateRangeSo().getEnd()); } return this.page(page.getPageSo().toPage(),queryWrapper); } 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 e2dab4f..ac43e26 100644 --- a/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java +++ b/src/main/java/com/gunshi/project/xyt/service/AssessTeamRatingService.java @@ -15,8 +15,8 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.Comparator; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -99,12 +99,8 @@ public class AssessTeamRatingService extends ServiceImpl finishTeams = teams.stream().filter(o -> o.getStatus() == 2).collect(Collectors.toList()); if(teams.size() == finishTeams.size()){ Integer scoreWay = task.getScoreWay(); - BigDecimal assessScore; - if(scoreWay == 1){ - assessScore = finishTeams.stream().min(Comparator.comparing(AssessTeam::getAssessScore)).get().getAssessScore(); - }else { - assessScore = finishTeams.stream().map(AssessTeam::getAssessScore).reduce(BigDecimal.ZERO,BigDecimal::add).divide(BigDecimal.valueOf(finishTeams.size()),2, RoundingMode.HALF_UP); - } + List teamIds = finishTeams.stream().map(AssessTeam::getId).collect(Collectors.toList()); + BigDecimal assessScore = calcScore(scoreWay,teamIds); Integer level = calcLevel(template, assessScore); AssessObject object = objectMapper.selectById(objectId); object.setStatus(2); @@ -120,11 +116,26 @@ public class AssessTeamRatingService extends ServiceImpl teamIds) { + BigDecimal score = new BigDecimal(0); + List ratings = this.list(new QueryWrapper().in("team_id",teamIds)); + Map> map = ratings.stream().collect(Collectors.groupingBy(AssessTeamRating::getIndicatorId,Collectors.mapping(AssessTeamRating::getAssessScore,Collectors.toList()))); + map.entrySet().forEach(o->{ + List value = o.getValue(); + if (scoreWay == 1){ + score.add(value.stream().min(BigDecimal::compareTo).get()); + }else{ + score.add(value.stream().reduce(BigDecimal.ZERO,BigDecimal::add).divide(BigDecimal.valueOf(value.size()),2, RoundingMode.HALF_UP)); + } + }); + return score; + } + public String getGroupId() { return "assessTeamRating"; } - public List detail(Long teamId) { + public List doDetail(Long teamId) { List list = this.baseMapper.scoreDetail(teamId); for (AssessRatingVo vo : list){ if(vo.getIsNeedRectify() == 1){ @@ -146,6 +157,11 @@ public class AssessTeamRatingService extends ServiceImpl> scoreDetail(Long objectId) { + List list = this.baseMapper.scoreByObjectId(objectId); + return list.stream().collect(Collectors.groupingBy(AssessTeamRating::getIndicatorId)); + } }