From 0220811fbcffd4bd4df334502a2af272ae29f1e3 Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期一, 13 七月 2026 10:14:30 +0800
Subject: [PATCH] 修复了已知BUG
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java | 261 ++++++++++++++++++----------------------------------
1 files changed, 91 insertions(+), 170 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
index 59466e8..bce0bc2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
@@ -8,18 +8,27 @@
import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper;
import com.ruoyi.system.mapper.TResultWorkEvaluateMapper;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
+import com.ruoyi.system.model.TProjectTeam;
+import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.TResultWorkEvaluate;
import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.TProjectTeamService;
+import com.ruoyi.system.service.TProjectTeamStaffService;
import com.ruoyi.system.service.TResultWorkEvaluateService;
import com.ruoyi.system.vo.ResultEvaluateChemistTesterVO;
+import com.ruoyi.system.vo.TResultWorkEvaluateDetailVO;
import com.ruoyi.system.vo.TResultWorkEvaluateVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -37,6 +46,16 @@
private SysUserMapper sysUserMapper;
@Autowired
private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
+ @Resource
+ private TResultWorkEvaluateService tResultWorkEvaluateService;
+ @Autowired
+ private TProjectTeamService projectTeamService;
+ @Autowired
+ private TProjectTeamStaffService projectTeamStaffService;
+ @Autowired
+ private ISysUserService sysUserService;
+ @Autowired
+ private WorkEvaluateService workEvaluateCalculateService;
@Override
public PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query) {
@@ -49,180 +68,82 @@
.orderByDesc(TResultWorkEvaluate::getEvaluateTime)
.isNotNull(TResultWorkEvaluate::getTeamId));
for (TResultWorkEvaluateVO tResultWorkEvaluateVO : list) {
- List<TResultWorkEvaluate> 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;
+ String id = tResultWorkEvaluateVO.getId();
- 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;
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ tResultWorkEvaluateVO.setStartTime(projectTeam.getCreateTime());
+ List<Long> role4 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+ List<Long> role5 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
- }
- 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;
+ List<SysUser> user4 = new ArrayList<>();
+ List<SysUser> user5 = new ArrayList<>();
+
+ for (Long l : role4) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user4.add(sysUser);
}
}
- tResultWorkEvaluateVO.setTeamIntegral(temp1);
- tResultWorkEvaluateVO.setEngineerIntegral(temp2);
- tResultWorkEvaluateVO.setChemistIntegral(temp3);
- tResultWorkEvaluateVO.setTesterIntegral(temp4);
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user5.add(sysUser);
+ }
+ }
+
+ int engineerIntegral = 0; // 工艺工程师总积分
+ int chemistIntegral = 0; // 化验师总积分
+ int testerIntegral = 0; // 实验员总积分
+
+ // 单独获取各角色积分
+ TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);//工艺工程师
+ if (engineerEvaluateDetail != null && engineerEvaluateDetail.getEngineerList() != null) {
+ engineerIntegral = engineerEvaluateDetail.getEngineerList().stream()
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ TResultWorkEvaluateDetailVO chemistEvaluateDetail = workEvaluateCalculateService.getChemistEvaluateDetail(id);//4 化验师
+ if (chemistEvaluateDetail != null && chemistEvaluateDetail.getChemistList() != null) {
+ chemistIntegral = chemistEvaluateDetail.getChemistList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ TResultWorkEvaluateDetailVO testerEvaluateDetail = workEvaluateCalculateService.getTesterEvaluateDetail(id);// 5 实验员
+ if (testerEvaluateDetail != null && testerEvaluateDetail.getTesterList() != null) {
+ testerIntegral = testerEvaluateDetail.getTesterList().stream()
+ .filter(user -> user.getList() != null)
+ .flatMap(user -> user.getList().stream())
+ .mapToInt(vo -> Optional.ofNullable(vo.getIntegral()).orElse(0))
+ .sum();
+ }
+
+ // 计算项目组总积分
+ int teamIntegral = engineerIntegral + chemistIntegral + testerIntegral;
+
+ //查询最后一条数据的时间
+ TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
+ .eq(TResultWorkEvaluate::getDisabled, 0)//未删除
+ .orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序
+ .last("limit 1")// 取第一条
+ .one();
+ if (tResultWorkEvaluate != null) {
+ tResultWorkEvaluateVO.setEndTime(tResultWorkEvaluate.getEvaluateTime());
+ }
+
+ tResultWorkEvaluateVO.setTeamIntegral(teamIntegral);
+ tResultWorkEvaluateVO.setEngineerIntegral(engineerIntegral);
+ tResultWorkEvaluateVO.setChemistIntegral(chemistIntegral);
+ tResultWorkEvaluateVO.setTesterIntegral(testerIntegral);
}
pageInfo.setRecords(list);
return pageInfo;
--
Gitblit v1.7.1