| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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) { |
| | |
| | | .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; |