大屏部分接口修改
parent
392f17b857
commit
2641ac9282
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue