package com.ruoyi.system.service.impl;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.documents4j.api.IFileConsumer;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.mapper.TResultWorkEvaluateMapper;
import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.TResultWorkEvaluate;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
import com.ruoyi.system.service.TResultWorkEvaluateService;
import com.ruoyi.system.vo.TProjectTeamVO;
import com.ruoyi.system.vo.TResultWorkEvaluateVO;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 实验员工作评定 服务实现类
*
*
* @author xiaochen
* @since 2025-04-08
*/
@Service
public class TTesterWorkEvaluateServiceImpl extends ServiceImpl implements TResultWorkEvaluateService {
@Override
public PageInfo pageList(TResultWorkEvaluateQuery query) {
PageInfo pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List list = this.baseMapper.pageList(query,pageInfo);
List tResultWorkEvaluates = this.baseMapper.selectList(new LambdaQueryWrapper()
.orderByDesc(TResultWorkEvaluate::getEvaluateTime));
for (TResultWorkEvaluateVO tResultWorkEvaluateVO : list) {
List collect = tResultWorkEvaluates.stream().filter(e ->
// e.getEvaluateOne()!=null&&
// e.getEvaluateTwo()!=null&&
// e.getEvaluateThree()!=null&&
// e.getEvaluateFour()!=null&&
// e.getEvaluateFive()!=null&&
// e.getEvaluateSix()!=null&&
e.getStatus()==1&&
e.getTeamId().equals(tResultWorkEvaluateVO.getTeamId())).collect(Collectors.toList());
if (!collect.isEmpty()){
tResultWorkEvaluateVO.setEndTime(collect.get(0).getEvaluateTime());
}
int temp1=0;
int temp2=0;
int temp3=0;
int temp4=0;
for (TResultWorkEvaluate tResultWorkEvaluate : collect) {
Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
switch (evaluateOne){
case 1:
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=2;
}
temp1+=2;
break;
case 2:
temp1+=1;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=1;
}
break;
}
Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
switch (evaluateTwo){
case 1:
temp1+=2;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=2;
}
break;
case 2:
temp1+=1;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=1;
}
break;
}
Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
switch (evaluateThree){
case 1:
temp1+=2;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=2;
}
break;
case 2:
temp1+=1;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=1;
}
break;
}
Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
switch (evaluateFour){
case 1:
temp1+=2;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=2;
}
break;
case 2:
temp1+=1;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=1;
}
break;
}
Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
switch (evaluateFive){
case 1:
temp1+=2;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=2;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=2;
}
break;
case 2:
temp1+=1;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3+=1;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4+=1;
}
break;
}
Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
switch (evaluateSix){
case 1:
temp1+=2;
if (tResultWorkEvaluate.getEvaluateType()==1){
temp2-=3;
}
if (tResultWorkEvaluate.getEvaluateType()==2){
temp3-=3;
}
if (tResultWorkEvaluate.getEvaluateType()==3){
temp4-=3;
}
break;
}
}
tResultWorkEvaluateVO.setTeamIntegral(temp1);
tResultWorkEvaluateVO.setEngineerIntegral(temp2);
tResultWorkEvaluateVO.setChemistIntegral(temp3);
tResultWorkEvaluateVO.setTesterIntegral(temp4);
}
pageInfo.setRecords(list);
return pageInfo;
}
}