From 2641ac9282a290350a0f435e84052b0e10bfbc97 Mon Sep 17 00:00:00 2001 From: wany <13995595726@qq.com> Date: Sun, 8 Feb 2026 14:38:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E9=83=A8=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/ss/config/OpenApiConfig.java | 2 +- .../ScreenResponsibilityController.java | 16 -------- .../entity/vo/ScreenPositionTrainingVo.java | 8 ++-- .../service/ScreenResponsibilityService.java | 37 ++++++++----------- 4 files changed, 20 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java index ae27b61..7d35f99 100644 --- a/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java +++ b/src/main/java/com/gunshi/project/ss/config/OpenApiConfig.java @@ -20,7 +20,7 @@ public class OpenApiConfig { "com.gunshi.project.ss.controller", }; String[] pathsToMatch = { - "/osmoticShiftDevice/**" + "/screen/responsibility/**" }; return GroupedOpenApi.builder() .group("ss") diff --git a/src/main/java/com/gunshi/project/ss/controller/ScreenResponsibilityController.java b/src/main/java/com/gunshi/project/ss/controller/ScreenResponsibilityController.java index fdcfc38..cf5a299 100644 --- a/src/main/java/com/gunshi/project/ss/controller/ScreenResponsibilityController.java +++ b/src/main/java/com/gunshi/project/ss/controller/ScreenResponsibilityController.java @@ -3,10 +3,7 @@ package com.gunshi.project.ss.controller; import com.gunshi.core.result.R; import com.gunshi.project.ss.entity.vo.ScreenPositionTrainingVo; -import com.gunshi.project.ss.model.FileAssociations; import com.gunshi.project.ss.model.ResPerson; -import com.gunshi.project.ss.service.FileAssociationsService; -import com.gunshi.project.ss.service.PersonnelPlanService; import com.gunshi.project.ss.service.ScreenResponsibilityService; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; @@ -24,11 +21,6 @@ public class ScreenResponsibilityController { @Autowired private ScreenResponsibilityService screenResponsibilityService; - - - @Autowired - private FileAssociationsService fileService; - @GetMapping("/getPerson") public R> getPerson(){ List vo = screenResponsibilityService.getPerson(); @@ -45,15 +37,7 @@ public class ScreenResponsibilityController { @GetMapping("/getTraining") public R getTraining(){ ScreenPositionTrainingVo vo = screenResponsibilityService.getTraining(); - if(vo.getLatestPersonnelPlan() != null){ - List files = fileService.getFiles(getGroupId(), vo.getLatestPersonnelPlan().getId().toString()); - vo.getLatestPersonnelPlan().setFiles(files); - } return R.ok(vo); } - public String getGroupId() { - return "personnelPlan"; - } - } diff --git a/src/main/java/com/gunshi/project/ss/entity/vo/ScreenPositionTrainingVo.java b/src/main/java/com/gunshi/project/ss/entity/vo/ScreenPositionTrainingVo.java index 8e6d137..d59c247 100644 --- a/src/main/java/com/gunshi/project/ss/entity/vo/ScreenPositionTrainingVo.java +++ b/src/main/java/com/gunshi/project/ss/entity/vo/ScreenPositionTrainingVo.java @@ -1,7 +1,7 @@ package com.gunshi.project.ss.entity.vo; -import com.gunshi.project.ss.model.PersonnelPlan; +import com.gunshi.project.ss.model.PersonnelPlanLog; import lombok.Data; @Data @@ -9,7 +9,7 @@ public class ScreenPositionTrainingVo { //培训计划数量 - private Long trainingCount; + private Integer trainingCount; //已开展 private Long hasTraining; @@ -18,9 +18,9 @@ public class ScreenPositionTrainingVo { private Long hasNoTraining; //参训总人次 - private Long totalTraining; + private Integer totalTraining; //最新培训内容 - private PersonnelPlan latestPersonnelPlan; + private PersonnelPlanLog latestPersonnelLog; } diff --git a/src/main/java/com/gunshi/project/ss/service/ScreenResponsibilityService.java b/src/main/java/com/gunshi/project/ss/service/ScreenResponsibilityService.java index f10f3b6..48ab013 100644 --- a/src/main/java/com/gunshi/project/ss/service/ScreenResponsibilityService.java +++ b/src/main/java/com/gunshi/project/ss/service/ScreenResponsibilityService.java @@ -11,7 +11,6 @@ import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; @Slf4j @Service @@ -29,30 +28,24 @@ public class ScreenResponsibilityService { public ScreenPositionTrainingVo getTraining() { ScreenPositionTrainingVo vo = new ScreenPositionTrainingVo(); List list = personnelPlanService.lambdaQuery().orderByDesc(PersonnelPlan::getCreateTime).list(); - vo.setTrainingCount(Long.valueOf(list.size())); + vo.setTrainingCount(list.size()); - //已开展 - List ids = list.stream().map(o -> o.getId()).collect(Collectors.toList()); - Long hasTraining = 0l; - Long hasNoTraining = 0l; - Long totalTraining = 0L; - //TODO 这里N+1问题自己去解决一下吧,我懒得改了。 - for (Long id : ids) { - List logs = personnelPlanLogService.lambdaQuery().eq(PersonnelPlanLog::getPlanId, id).list(); - if(logs.isEmpty()){ - hasNoTraining++; - }else{ - hasTraining++; - totalTraining += logs.stream().mapToLong(o -> o.getNumPeople()).sum(); - } + List ids = list.stream().map(PersonnelPlan::getId).toList(); + + List logs = personnelPlanLogService.lambdaQuery().orderByDesc(PersonnelPlanLog::getCreateTime).list(); + if(logs.isEmpty()){ + vo.setTotalTraining(0); + vo.setHasTraining(0L); + vo.setHasNoTraining(0L); + return vo; } + vo.setLatestPersonnelLog(logs.getFirst()); + vo.setTotalTraining(logs.stream().mapToInt(PersonnelPlanLog::getNumPeople).sum()); + + //已开展数量 + Long hasTraining = logs.stream().map(PersonnelPlanLog::getPlanId).filter(planId ->ids.contains(planId)).distinct().count(); vo.setHasTraining(hasTraining); - vo.setHasNoTraining(hasNoTraining); - vo.setTotalTraining(totalTraining); - if(!list.isEmpty()){ - PersonnelPlan personnelPlan = list.get(0); - vo.setLatestPersonnelPlan(personnelPlan); - } + vo.setHasNoTraining(vo.getTrainingCount() - hasTraining); return vo; }