大屏部分接口修改

master
wany 2026-02-08 14:38:22 +08:00
parent 392f17b857
commit 2641ac9282
4 changed files with 20 additions and 43 deletions

View File

@ -20,7 +20,7 @@ public class OpenApiConfig {
"com.gunshi.project.ss.controller", "com.gunshi.project.ss.controller",
}; };
String[] pathsToMatch = { String[] pathsToMatch = {
"/osmoticShiftDevice/**" "/screen/responsibility/**"
}; };
return GroupedOpenApi.builder() return GroupedOpenApi.builder()
.group("ss") .group("ss")

View File

@ -3,10 +3,7 @@ package com.gunshi.project.ss.controller;
import com.gunshi.core.result.R; import com.gunshi.core.result.R;
import com.gunshi.project.ss.entity.vo.ScreenPositionTrainingVo; 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.model.ResPerson;
import com.gunshi.project.ss.service.FileAssociationsService;
import com.gunshi.project.ss.service.PersonnelPlanService;
import com.gunshi.project.ss.service.ScreenResponsibilityService; import com.gunshi.project.ss.service.ScreenResponsibilityService;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -24,11 +21,6 @@ public class ScreenResponsibilityController {
@Autowired @Autowired
private ScreenResponsibilityService screenResponsibilityService; private ScreenResponsibilityService screenResponsibilityService;
@Autowired
private FileAssociationsService fileService;
@GetMapping("/getPerson") @GetMapping("/getPerson")
public R<List<ResPerson>> getPerson(){ public R<List<ResPerson>> getPerson(){
List<ResPerson> vo = screenResponsibilityService.getPerson(); List<ResPerson> vo = screenResponsibilityService.getPerson();
@ -45,15 +37,7 @@ public class ScreenResponsibilityController {
@GetMapping("/getTraining") @GetMapping("/getTraining")
public R<ScreenPositionTrainingVo> getTraining(){ public R<ScreenPositionTrainingVo> getTraining(){
ScreenPositionTrainingVo vo = screenResponsibilityService.getTraining(); ScreenPositionTrainingVo vo = screenResponsibilityService.getTraining();
if(vo.getLatestPersonnelPlan() != null){
List<FileAssociations> files = fileService.getFiles(getGroupId(), vo.getLatestPersonnelPlan().getId().toString());
vo.getLatestPersonnelPlan().setFiles(files);
}
return R.ok(vo); return R.ok(vo);
} }
public String getGroupId() {
return "personnelPlan";
}
} }

View File

@ -1,7 +1,7 @@
package com.gunshi.project.ss.entity.vo; package com.gunshi.project.ss.entity.vo;
import com.gunshi.project.ss.model.PersonnelPlan; import com.gunshi.project.ss.model.PersonnelPlanLog;
import lombok.Data; import lombok.Data;
@Data @Data
@ -9,7 +9,7 @@ public class ScreenPositionTrainingVo {
//培训计划数量 //培训计划数量
private Long trainingCount; private Integer trainingCount;
//已开展 //已开展
private Long hasTraining; private Long hasTraining;
@ -18,9 +18,9 @@ public class ScreenPositionTrainingVo {
private Long hasNoTraining; private Long hasNoTraining;
//参训总人次 //参训总人次
private Long totalTraining; private Integer totalTraining;
//最新培训内容 //最新培训内容
private PersonnelPlan latestPersonnelPlan; private PersonnelPlanLog latestPersonnelLog;
} }

View File

@ -11,7 +11,6 @@ import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@ -29,30 +28,24 @@ public class ScreenResponsibilityService {
public ScreenPositionTrainingVo getTraining() { public ScreenPositionTrainingVo getTraining() {
ScreenPositionTrainingVo vo = new ScreenPositionTrainingVo(); ScreenPositionTrainingVo vo = new ScreenPositionTrainingVo();
List<PersonnelPlan> list = personnelPlanService.lambdaQuery().orderByDesc(PersonnelPlan::getCreateTime).list(); List<PersonnelPlan> list = personnelPlanService.lambdaQuery().orderByDesc(PersonnelPlan::getCreateTime).list();
vo.setTrainingCount(Long.valueOf(list.size())); vo.setTrainingCount(list.size());
//已开展 List<Long> ids = list.stream().map(PersonnelPlan::getId).toList();
List<Long> ids = list.stream().map(o -> o.getId()).collect(Collectors.toList());
Long hasTraining = 0l; List<PersonnelPlanLog> logs = personnelPlanLogService.lambdaQuery().orderByDesc(PersonnelPlanLog::getCreateTime).list();
Long hasNoTraining = 0l;
Long totalTraining = 0L;
//TODO 这里N+1问题自己去解决一下吧我懒得改了。
for (Long id : ids) {
List<PersonnelPlanLog> logs = personnelPlanLogService.lambdaQuery().eq(PersonnelPlanLog::getPlanId, id).list();
if(logs.isEmpty()){ if(logs.isEmpty()){
hasNoTraining++; vo.setTotalTraining(0);
}else{ vo.setHasTraining(0L);
hasTraining++; vo.setHasNoTraining(0L);
totalTraining += logs.stream().mapToLong(o -> o.getNumPeople()).sum(); 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.setHasTraining(hasTraining);
vo.setHasNoTraining(hasNoTraining); vo.setHasNoTraining(vo.getTrainingCount() - hasTraining);
vo.setTotalTraining(totalTraining);
if(!list.isEmpty()){
PersonnelPlan personnelPlan = list.get(0);
vo.setLatestPersonnelPlan(personnelPlan);
}
return vo; return vo;
} }