gunshi-project-ss/src/main/java/com/gunshi/project/ss/service/ScreenResponsibilityService...

66 lines
2.3 KiB
Java

package com.gunshi.project.ss.service;
import com.gunshi.project.ss.entity.vo.ScreenPositionTrainingVo;
import com.gunshi.project.ss.model.PersonnelPlan;
import com.gunshi.project.ss.model.PersonnelPlanLog;
import com.gunshi.project.ss.model.ResPerson;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
@Slf4j
@Service
public class ScreenResponsibilityService {
@Autowired
private PersonnelPlanService personnelPlanService;
@Autowired
private PersonnelPlanLogService personnelPlanLogService;
@Autowired
private ResPersonService resPersonService;
public ScreenPositionTrainingVo getTraining() {
ScreenPositionTrainingVo vo = new ScreenPositionTrainingVo();
List<PersonnelPlan> list = personnelPlanService.lambdaQuery().orderByDesc(PersonnelPlan::getCreateTime).list();
vo.setTrainingCount(list.size());
List<Long> ids = list.stream().map(PersonnelPlan::getId).toList();
List<PersonnelPlanLog> 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(vo.getTrainingCount() - hasTraining);
return vo;
}
public List<ResPerson> getPerson() {
List<ResPerson> list = resPersonService.lambdaQuery().in(ResPerson::getType, Arrays.asList(1, 2, 3))
.orderByDesc(ResPerson::getCreateTime)
.list();
return list;
}
public List<ResPerson> getFxPerson() {
List<ResPerson> list = resPersonService.lambdaQuery().in(ResPerson::getType, Arrays.asList(1, 4, 5))
.orderByDesc(ResPerson::getCreateTime)
.list();
return list;
}
}