package com.ruoyi.web.controller.api;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.BaseModel;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TResultWorkEvaluateDTO;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
import com.ruoyi.system.query.TProjectApprovalReportQuery;
import com.ruoyi.system.query.TResultWorkEvaluateQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.service.impl.WorkEvaluateService;
import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
*
* 实验结果工作评定 前端控制器
*
*
* @author xiaochen
* @since 2025-04-08
*/
@Api(tags = "实验结果工作评定管理")
@RestController
@RequestMapping("")
public class TResultWorkEvaluateController {
@Resource
private TResultWorkEvaluateService tResultWorkEvaluateService;
@Resource
private TokenService tokenService;
@Resource
private TFeasibilityStudyReportService feasibilityStudyReportService;
@Resource
private TExperimentResultReportService experimentResultReportService;
@Resource
private TExperimentSchemeService experimentSchemeService;
@Resource
private TProjectApprovalReportService projectApprovalReportService;
@Resource
private TExperimentDispatchService experimentDispatchService;
@Resource
private TClinicalTrialPointsService clinicalTrialPointsService;
@Resource
private TTesterOtherTaskService tTesterOtherTaskService;
@Resource
private TProjectProposalService projectProposalService;
@Resource
private TQaProduceReportService qaProduceReportService;
@Resource
private TQaTestItemService qaTestItemService;
@Autowired
private TProjectTeamService projectTeamService;
@Autowired
private TProjectTeamStaffService projectTeamStaffService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private SysUserMapper sysUserMapper;
@Autowired
private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
@Autowired
private TExperimentResultReportService tExperimentResultReportService;
@Autowired
private TExperimentDispatchService tExperimentDispatchService;
@Autowired
private TProjectProposalService tProjectProposalService;
@Autowired
private WorkEvaluateService workEvaluateCalculateService;
/**
* 获取化验师工作评定分页列表
*/
//@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
@ApiOperation(value = "获取化验师工作评定分页列表",response = TResultWorkEvaluateQuery.class)
@PostMapping(value = "/api/t-result-work-evaluate/chemistEvaluateList")
public R> chemistEvaluateList(@RequestBody String param) {
TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
Long userId = tokenService.getLoginUser().getUserId();
Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
query.setRoleType(roleType);
if(roleType != 1){
// 查询用户所在项目组
List projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId));
if(projectTeamStaffs.size() > 0){
// 查询项目组id
List teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
query.setTeamIds(teamIds);
}
if(roleType == 4){
query.setUserId(userId);
}
}
return R.ok(tResultWorkEvaluateService.chemistEvaluateList(query));
}
/**
* 获取实验员工作评定分页列表
*/
//@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:list')")
@ApiOperation(value = "获取实验员工作评定分页列表",response = TProjectApprovalReportQuery.class)
@PostMapping(value = "/api/t-result-work-evaluate/testerEvaluateList")
public R> testerEvaluateList(@RequestBody String param) {
TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
Long userId = tokenService.getLoginUser().getUserId();
Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
query.setRoleType(roleType);
if(roleType != 1){
// 查询用户所在项目组
List projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
.eq(TProjectTeamStaff::getUserId, userId));
if(projectTeamStaffs.size() > 0){
// 查询项目组id
List teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
query.setTeamIds(teamIds);
}
if(roleType == 5){
query.setUserId(userId);
}
}
return R.ok(tResultWorkEvaluateService.testerEvaluateList(query));
}
/**
* 新增化验师、实验员工作评定
*/
//@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
@Log(title = "实验结果工作评定管理-新增化验师、实验员工作评定", businessType = BusinessType.INSERT)
@ApiOperation(value = "新增化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
@PostMapping(value = "/api/t-result-work-evaluate/add")
public R add(@RequestBody String param) {
TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
tResultWorkEvaluateService.save(dto);
// 查询实验调度
TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId());
if(Objects.nonNull(dispatch)){
// 修改结束时间
dispatch.setExperimentEndTime(LocalDateTime.now());
experimentDispatchService.updateById(dispatch);
}
return R.ok();
}
/**
* 编辑化验师、实验员工作评定
*/
//@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:edit')")
@Log(title = "实验结果工作评定管理-编辑化验师、实验员工作评定", businessType = BusinessType.UPDATE)
@ApiOperation(value = "编辑化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
@PostMapping(value = "/api/t-result-work-evaluate/edit")
public R edit(@RequestBody String param) {
TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
tResultWorkEvaluateService.updateById(dto);
// 查询实验调度
TExperimentDispatch dispatch = experimentDispatchService.getById(dto.getDispatchId());
if(Objects.nonNull(dispatch)){
// 修改结束时间
dispatch.setExperimentEndTime(LocalDateTime.now());
experimentDispatchService.updateById(dispatch);
}
return R.ok();
}
/**
* 删除化验师、实验员工作评定
*/
//@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:delete')")
@Log(title = "实验结果工作评定管理-删除化验师、实验员工作评定", businessType = BusinessType.DELETE)
@ApiOperation(value = "删除化验师、实验员工作评定")
@DeleteMapping(value = "/open/t-result-work-evaluate/deleteById")
public R deleteById(@RequestParam String id) {
tResultWorkEvaluateService.removeById(id);
return R.ok();
}
/**
* 查看实验结果工作评定管理详情
*/
//@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:detail')")
@ApiOperation(value = "查看实验结果工作评定管理详情")
@GetMapping(value = "/open/t-result-work-evaluate/getEvaluateDetailById")
public R getEvaluateDetailById(@RequestParam String id) {
// 查询实验结果工作评定
TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
TResultWorkEvaluateVO tResultWorkEvaluateVO = new TResultWorkEvaluateVO();
BeanUtils.copyProperties(resultWorkEvaluate, tResultWorkEvaluateVO);
// 查询实验调度
TExperimentDispatch experimentDispatch = experimentDispatchService.getById(resultWorkEvaluate.getDispatchId());
// 查询实验调度信息
if(Objects.nonNull(experimentDispatch)){
// 查询课题方案名称
TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
if(Objects.nonNull(projectProposal)){
experimentDispatch.setProjectName(projectProposal.getProjectName());
experimentDispatch.setProjectCode(projectProposal.getProjectCode());
}
// 查询参与人员
List tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
.eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()));
List userIds1 = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
List sysUsers1 = sysUserMapper.selectUserByIds(userIds1);
String participantsName = sysUsers1.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
experimentDispatch.setParticipantsName(participantsName);
}
tResultWorkEvaluateVO.setExperimentDispatch(experimentDispatch);
// 查询被评定人
SysUser sysUser = sysUserService.selectUserById(tResultWorkEvaluateVO.getUserId());
if(tResultWorkEvaluateVO.getEvaluateType() == 2){
// 化验师
tResultWorkEvaluateVO.setChemistName(sysUser.getNickName());
}else {
// 实验员
tResultWorkEvaluateVO.setTesterName(sysUser.getNickName());
}
return R.ok(tResultWorkEvaluateVO);
}
/**
* 查询可评定的化验师
*/
@ApiOperation(value = "查询可评定的化验师")
@GetMapping(value = "/open/t-result-work-evaluate/getEvaluateChemist")
public R> getEvaluateChemist(@RequestParam(value = "nickName",required = false) String nickName,
@RequestParam(value = "dispatchId") String dispatchId) {
// 查询参与的化验师
List experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
.eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
.eq(TExperimentDispatchParticipants::getRoleType, 4));
List userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
if(StringUtils.hasLength(nickName)){
List sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
return R.ok(sysUsers);
}
List sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
return R.ok(sysUsers);
}
/**
* 查询可评定的实验员
*/
@ApiOperation(value = "查询可评定的实验员")
@GetMapping(value = "/open/t-result-work-evaluate/getEvaluateTester")
public R> getEvaluateTester(@RequestParam(value = "nickName",required = false) String nickName,
@RequestParam(value = "dispatchId") String dispatchId) {
// 查询参与的化验师
List experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
.eq(TExperimentDispatchParticipants::getDispatchId, dispatchId)
.eq(TExperimentDispatchParticipants::getRoleType, 5));
List userIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
if(StringUtils.hasLength(nickName)){
List sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
return R.ok(sysUsers);
}
List sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
return R.ok(sysUsers);
}
/**
* 查询化验师评定列表
*/
@ApiOperation(value = "查询化验师评定列表-化验师使用")
@PostMapping(value = "/api/t-result-work-evaluate/getEvaluateChemistPageList")
public R> getEvaluateChemistPageList(@RequestBody String param) {
ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
// 获取当前用户id
Long userId = tokenService.getLoginUser().getUserId();
query.setUserId(userId);
PageInfo pageInfo = tResultWorkEvaluateService.getEvaluateChemistPageList(query);
return R.ok(pageInfo);
}
/**
* 查询实验员评定列表
*/
@ApiOperation(value = "查询实验员评定列表-实验员使用")
@PostMapping(value = "/api/t-result-work-evaluate/getEvaluateTesterPageList")
public R> getEvaluateTesterPageList(@RequestBody String param) {
ResultEvaluateChemistTesterQuery query = JSON.parseObject(param, ResultEvaluateChemistTesterQuery.class);
// 获取当前用户id
Long userId = tokenService.getLoginUser().getUserId();
query.setUserId(userId);
PageInfo pageInfo = tResultWorkEvaluateService.getEvaluateTesterPageList(query);
return R.ok(pageInfo);
}
@ApiOperation(value = "项目组总积分分页列表", tags = "项目组总积分", response = TResultWorkEvaluateQuery.class)
@PostMapping(value = "/api/t-result-work-evaluate/pageList")
public R> pageList(@RequestBody String param) {
LoginUser loginUser = tokenService.getLoginUser();
TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
if (SecurityUtils.isAdmin(SecurityUtils.getUserId())){
query.setUserId(null);
}
SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
if (sysUser.getRoleType() != 1) {
List teamIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
.stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
if (teamIds.isEmpty()) {
return R.ok(new PageInfo<>());
}
query.setTeamIds(teamIds);
}else {
List teamIds = projectTeamStaffService.lambdaQuery()
.list()
.stream()
.map(TProjectTeamStaff::getTeamId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
if (teamIds.isEmpty()) {
return R.ok(new PageInfo<>());
}
query.setTeamIds(teamIds);
}
return R.ok(tResultWorkEvaluateService.pageList(query));
}
/**
* 查看取样记录详情
*/
//@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')")
@ApiOperation(value = "查看详情-顶部数据",response = TResultWorkEvaluateVO.class)
@GetMapping(value = "/open/t-result-work-evaluate/getDetailById")
public R getDetailById(@RequestParam String id) {
TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
List role4 = projectTeamStaffService.lambdaQuery()
.eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
List role5 = projectTeamStaffService.lambdaQuery()
.eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
List user4 = new ArrayList<>();
List user5 = new ArrayList<>();
for (Long l : role4) {
SysUser sysUser = sysUserService.selectUserById(l);
if (sysUser != null) {
user4.add(sysUser);
}
}
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;
tResultWorkEvaluateDetailVO.setTeamIntegral(teamIntegral);
tResultWorkEvaluateDetailVO.setEngineerIntegral(engineerIntegral);
tResultWorkEvaluateDetailVO.setChemistIntegral(chemistIntegral);
tResultWorkEvaluateDetailVO.setTesterIntegral(testerIntegral);
//查询最后一条数据的时间
TResultWorkEvaluate tResultWorkEvaluate = tResultWorkEvaluateService.lambdaQuery()
.eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
.eq(TResultWorkEvaluate::getDisabled, 0)//未删除
.orderByDesc(TResultWorkEvaluate::getEvaluateTime)// 按评定时间倒序排序
.last("limit 1")// 取第一条
.one();
if (tResultWorkEvaluate != null) {
tResultWorkEvaluateDetailVO.setEndTime(tResultWorkEvaluate.getEvaluateTime());
}
// 查询项目组总的失败次数
String teamId = resultWorkEvaluate.getTeamId();
List projectProposalIds = projectProposalService.lambdaQuery().eq(TProjectProposal::getTeamId, teamId).list()
.stream().map(TProjectProposal::getId).collect(Collectors.toList());
if (projectProposalIds.isEmpty()){
tResultWorkEvaluateDetailVO.setTermination(0);
}else{
List experimentDispatchIds = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, projectProposalIds).list()
.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
if (experimentDispatchIds.isEmpty()){
tResultWorkEvaluateDetailVO.setTermination(0);
}else{
Long count = experimentSchemeService.lambdaQuery().in(TExperimentScheme::getDispatchId, experimentDispatchIds)
.eq(TExperimentScheme::getStatus, 3).count();
tResultWorkEvaluateDetailVO.setTermination(count.intValue());
}
}
return R.ok(tResultWorkEvaluateDetailVO);
}
@ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
@GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
public R getDetailByIdLeftOne(@RequestParam String id) {
TResultWorkEvaluateDetailVO engineerEvaluateDetail = workEvaluateCalculateService.getProcessEngineerEvaluateDetail(id);
return R.ok(engineerEvaluateDetail);
}
@ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定")
@GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftTwo")
public R getDetailByIdLeftTwo(@RequestParam String id) {
TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
List tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
List role5 = projectTeamStaffService.lambdaQuery()
.eq(TProjectTeamStaff::getRoleType, 4).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
List user5 = new ArrayList<>();
SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
//只能查看自己的
user5.add(sysUser1);
} else {
for (Long l : role5) {
SysUser sysUser = sysUserService.selectUserById(l);
if (sysUser != null) {
user5.add(sysUser);
}
}
}
// List total = feasibilityStudyReportService.lambdaQuery()
// .eq(TFeasibilityStudyReport::getStatus, 3)
// .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
for (SysUser sysUser : user5) {
List tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
// 开发阶段
//查询当前team的实验结果评定 集合
List tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
.eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
.eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
.eq(TResultWorkEvaluate::getEvaluateType, 2)//化验师
.eq(TResultWorkEvaluate::getDisabled, 0)//未删除
.orderByAsc(TResultWorkEvaluate::getEvaluateTime)
.list();
workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
// 项目检测项评定
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO9 = new TResultWorkEvaluateDetailEngineerVO();
List list5 = qaTestItemService.lambdaQuery()
.eq(TQaTestItem::getStatus,3)
.eq(TQaTestItem::getTeamId, projectTeam.getId())
.eq(TQaTestItem::getCommitPersonId, sysUser.getUserId()).list();
if (!list5.isEmpty()){
tResultWorkEvaluateDetailEngineerVO9.setStartTime(list5.get(0).getEvaluateTime());
tResultWorkEvaluateDetailEngineerVO9.setEndTime(list5.get(list5.size() - 1).getCreateTime());
}
int tempDetail9 = 0;
for (TQaTestItem tQaTestItem : list5) {
if (StringUtils.hasLength(tQaTestItem.getEvaluateScore())){
for (String s : tQaTestItem.getEvaluateScore().split(",")){
tempDetail9 += Integer.parseInt(s);
}
}
}
tResultWorkEvaluateDetailEngineerVO9.setCount(list5.size());
tResultWorkEvaluateDetailEngineerVO9.setIntegral(tempDetail9);
tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO9);
// 中试、生产验证试验检验分析报告评定
List list = qaProduceReportService.lambdaQuery()
.eq(TQaProduceReport::getStatus,3)
.eq(TQaProduceReport::getTeamId, projectTeam.getId())
.eq(TQaProduceReport::getCommitPersonId, sysUser.getUserId()).list();
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
List collect3 = list.stream().filter(e -> e.getReportType() == 1).collect(Collectors.toList());
if (!collect3.isEmpty()) {
tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect3.get(0).getEvaluateTime());
tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect3.get(collect3.size() - 1).getEvaluateTime());
}
int tempDetail5 = 0;
for (TQaProduceReport tQaProduceReport : collect3) {
if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
tempDetail5+=Integer.parseInt(s);
}
}
}
tResultWorkEvaluateDetailEngineerVO5.setCount(collect3.size());
tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail5);
tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
// 辅料
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
List collect4 = list.stream().filter(e -> e.getReportType() == 2).collect(Collectors.toList());
if (!collect4.isEmpty()) {
tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect4.get(0).getEvaluateTime());
tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect4.get(collect4.size() - 1).getEvaluateTime());
}
int tempDetail6 = 0;
for (TQaProduceReport tQaProduceReport : collect4) {
if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
tempDetail6+=Integer.parseInt(s);
}
}
}
tResultWorkEvaluateDetailEngineerVO6.setCount(collect4.size());
tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail6);
tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
// 产品
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
List collect9 = list.stream().filter(e -> e.getReportType() == 3).collect(Collectors.toList());
if (!collect9.isEmpty()) {
tResultWorkEvaluateDetailEngineerVO7.setStartTime(collect9.get(0).getEvaluateTime());
tResultWorkEvaluateDetailEngineerVO7.setEndTime(collect9.get(collect9.size() - 1).getEvaluateTime());
}
int tempDetail7 = 0;
for (TQaProduceReport tQaProduceReport : collect9) {
if (StringUtils.hasLength(tQaProduceReport.getEvaluateScore())){
for (String s : tQaProduceReport.getEvaluateScore().split(",")) {
tempDetail7+=Integer.parseInt(s);
}
}
}
tResultWorkEvaluateDetailEngineerVO7.setCount(collect9.size());
tResultWorkEvaluateDetailEngineerVO7.setIntegral(tempDetail7);
tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
}
tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS);
return R.ok(tResultWorkEvaluateDetailVO);
}
@ApiOperation(value = "查看详情-左侧数据-实验员工作内容评定")
@GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftThree")
public R getDetailByIdLeftThree(@RequestParam String id) {
TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
List tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
List role5 = projectTeamStaffService.lambdaQuery()
.eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
.stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
List user5 = new ArrayList<>();
SysUser sysUser1 = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
if (sysUser1.getRoleType() == 4 || sysUser1.getRoleType() == 5) {
//只能查看自己的
user5.add(sysUser1);
} else {
for (Long l : role5) {
SysUser sysUser = sysUserService.selectUserById(l);
if (sysUser != null) {
user5.add(sysUser);
}
}
}
for (SysUser sysUser : user5) {
List tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
// 开发阶段
//查询当前team的实验结果评定 集合
List tResultWorkEvaluateList = tResultWorkEvaluateService.lambdaQuery()
.eq(TResultWorkEvaluate::getUserId, sysUser.getUserId())
.eq(TResultWorkEvaluate::getTeamId, projectTeam.getId())
.eq(TResultWorkEvaluate::getEvaluateType, 3)//实验员
.eq(TResultWorkEvaluate::getDisabled, 0)//未删除
.orderByAsc(TResultWorkEvaluate::getEvaluateTime)
.list();
workEvaluateCalculateService.getThreeScope(tResultWorkEvaluateList, tResultWorkEvaluateDetailEngineerVOS);
// 其他任务
List list = tTesterOtherTaskService.lambdaQuery()
.eq(TTesterOtherTask::getTesterId, sysUser.getUserId())
.eq(TTesterOtherTask::getTeamId, projectTeam.getId())
.orderByAsc(TTesterOtherTask::getCreateTime)
.list();
TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
tResultWorkEvaluateDetailEngineerVO5.setCount(list.size());
if (!list.isEmpty()) {
tResultWorkEvaluateDetailEngineerVO5.setStartTime(list.get(0).getCreateTime());
tResultWorkEvaluateDetailEngineerVO5.setEndTime(list.get(list.size() - 1).getCreateTime());
}
int temp = 0;
for (TTesterOtherTask tTesterOtherTask : list) {
if (tTesterOtherTask.getEvaluateScore() != null) {
temp += tTesterOtherTask.getEvaluateScore();
}
}
tResultWorkEvaluateDetailEngineerVO5.setIntegral(temp);
tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
}
tResultWorkEvaluateDetailVO.setTesterList(tResultWorkEvaluateDetailUserVOS);
return R.ok(tResultWorkEvaluateDetailVO);
}
}