From 9cb78a5414cdbfdd59931b14759bf9800d275448 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 19 五月 2025 14:39:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java | 1043 +++++++++++++++++++++++++++++++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java | 7
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java | 36 +
ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java | 23
ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java | 5
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailVO.java | 43 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java | 199 ++++++++
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java | 21
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailEngineerVO.java | 27 +
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml | 23
11 files changed, 1,422 insertions(+), 9 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
index 65e5600..5fba2d1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
@@ -2,18 +2,34 @@
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.framework.web.service.TokenService;
import com.ruoyi.system.dto.TQaTestItemDTO;
-import com.ruoyi.system.service.TResultWorkEvaluateService;
+import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.TQaTestItemReportQuery;
+import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -27,12 +43,32 @@
@RestController
@RequestMapping("/t-result-work-evaluate")
public class TResultWorkEvaluateController {
+ @Resource
+ private TResultWorkEvaluateService tResultWorkEvaluateService;
+ @Resource
+ private TokenService tokenService;
+ @Resource
+ private TFeasibilityStudyReportService feasibilityStudyReportService;
+ @Resource
+ private TExperimentResultReportService experimentResultReportService;
+ @Resource
+ private TProjectApprovalReportService projectApprovalReportService;
+ @Resource
+ private TExperimentDispatchService experimentDispatchService;
+ @Resource
+ private TClinicalTrialPointsService clinicalTrialPointsService;
- private final TResultWorkEvaluateService resultWorkEvaluateService;
+ @Resource
+ private TProjectProposalService projectProposalService;
+ private final TProjectTeamService projectTeamService;
+ private final TProjectTeamStaffService projectTeamStaffService;
+ private final ISysUserService sysUserService;
@Autowired
- public TResultWorkEvaluateController(TResultWorkEvaluateService resultWorkEvaluateService) {
- this.resultWorkEvaluateService = resultWorkEvaluateService;
+ public TResultWorkEvaluateController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService) {
+ this.projectTeamService = projectTeamService;
+ this.projectTeamStaffService = projectTeamStaffService;
+ this.sysUserService = sysUserService;
}
/**
@@ -48,5 +84,996 @@
return R.ok();
}
+
+
+ @ApiOperation(value = "项目组总积分分页列表",tags = "项目组总积分",response = TQaTestItemReportQuery.class)
+ @PostMapping(value = "/api/t-result-work-evaluate/pageList")
+ public R<PageInfo<TResultWorkEvaluateVO>> pageList(@RequestBody String param) {
+ LoginUser loginUser = tokenService.getLoginUser();
+
+ TResultWorkEvaluateQuery query = JSON.parseObject(param, TResultWorkEvaluateQuery.class);
+ SysUser sysUser = sysUserService.selectUserById(loginUser.getUser().getUserId());
+ if (sysUser.getRoleType()!=1){
+ List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, loginUser.getUser().getUserId()).list()
+ .stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+ if (collect.isEmpty()){
+ return R.ok(new PageInfo<>());
+ }
+ }
+ return R.ok(tResultWorkEvaluateService.pageList(query));
+ }
+ /**
+ * 查看取样记录详情
+ */
+ //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')")
+ @ApiOperation(value = "查看详情-顶部数据")
+ @GetMapping(value = "/open/t-result-work-evaluate/getDetailById")
+ public R<TResultWorkEvaluateDetailVO> getDetailById(@RequestParam String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
+ TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one();
+ 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());
+ 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);
+ }
+ }
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser!=null){
+ user5.add(sysUser);
+ }
+ }
+ List<TResultWorkEvaluate> list = tResultWorkEvaluateService.lambdaQuery().eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId())
+ .eq(TResultWorkEvaluate::getStatus,1).orderByDesc(TResultWorkEvaluate::getEvaluateTime).list();
+ int temp1=0;
+ int temp2=0;
+ int temp3=0;
+ int temp4=0;
+ int temp5=0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list) {
+ 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-=3;
+ temp5++;
+ if (tResultWorkEvaluate.getEvaluateType()==1){
+ temp2-=3;
+ }
+ if (tResultWorkEvaluate.getEvaluateType()==2){
+ temp3-=3;
+ }
+ if (tResultWorkEvaluate.getEvaluateType()==3){
+ temp4-=3;
+ }
+ break;
+ }
+ }
+ tResultWorkEvaluateDetailVO.setTeamIntegral(temp1);
+ tResultWorkEvaluateDetailVO.setEngineerIntegral(temp2);
+ tResultWorkEvaluateDetailVO.setChemistIntegral(temp3);
+ tResultWorkEvaluateDetailVO.setTesterIntegral(temp4);
+ tResultWorkEvaluateDetailVO.setTermination(temp5);
+ if (!list.isEmpty()){
+ tResultWorkEvaluateDetailVO.setEndTime(list.get(0).getEvaluateTime());
+ }
+
+ return R.ok(tResultWorkEvaluateDetailVO);
+ }
+
+
+ @ApiOperation(value = "查看详情-左侧数据-工艺工程师工作内容评定")
+ @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftOne")
+ public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftOne(@RequestParam String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1")
+ .one();
+ tResultWorkEvaluateDetailVO.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());
+ 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);
+ }
+ }
+ for (Long l : role5) {
+ SysUser sysUser = sysUserService.selectUserById(l);
+ if (sysUser != null) {
+ user5.add(sysUser);
+ }
+ }
+ Long userId = one.getUserId();
+
+ List<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+ .eq(TFeasibilityStudyReport::getStatus,3)
+ .eq(TFeasibilityStudyReport::getEvaluatePersonId, userId).list();
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+ // 工艺可研
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect = total.stream().filter(e -> e.getReportType().equals(1)).collect(Collectors.toList());
+ int tempDetail= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO.setCount(collect.size());
+ tResultWorkEvaluateDetailEngineerVO.setIntegral(tempDetail);
+ if (!collect.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO.setEndTime(collect.get(collect.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO.setStartTime(projectTeam.getCreateTime());
+
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO);
+ // 工艺可行
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO1 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect1 = total.stream().filter(e -> e.getReportType().equals(2)).collect(Collectors.toList());
+ int tempDetail1= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect1) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail1+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO1.setCount(collect1.size());
+ tResultWorkEvaluateDetailEngineerVO1.setIntegral(tempDetail1);
+ if (!collect1.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO1.setEndTime(collect1.get(collect1.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO1.setStartTime(projectTeam.getCreateTime());
+
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO1);
+
+ // 开发阶段
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
+ List<Integer> status = new ArrayList<>();
+ status.add(-1);
+ status.add(1);
+ status.add(3);
+ status.add(4);
+ status.add(5);
+ List<TProjectProposal> list2 = projectProposalService.lambdaQuery().eq(TProjectProposal::getCommitUserId, userId)
+ .notIn(TProjectProposal::getAuditStatus, status).list();
+ List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
+ if (collect5.isEmpty()){
+ collect5.add("0");
+ }
+ List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+ if (collect6.isEmpty()){
+ collect6.add("0");
+ }
+ List<Integer> status1 = new ArrayList<>();
+ status1.add(-1);
+ status1.add(1);
+ status1.add(2);
+ status1.add(4);
+ List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect6).list();
+ int tempDetail2 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list1) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail2+=2;
+ break;
+ case 2:
+ tempDetail2+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail2+=2;
+ break;
+ case 2:
+ tempDetail2+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail2-=3;
+ break;
+ }
+ }
+ if (!list1.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
+
+ tResultWorkEvaluateDetailEngineerVO2.setCount(list1.size());
+ tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
+
+ // 中试试验阶段
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
+
+ List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
+ if (collect7.isEmpty()){
+ collect7.add("0");
+ }
+ List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+ if (collect8.isEmpty()){
+ collect8.add("0");
+ }
+ List<Integer> status2 = new ArrayList<>();
+ status2.add(-1);
+ status2.add(1);
+ status2.add(2);
+ status2.add(4);
+ List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect8).list();
+ int tempDetail3 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail3+=2;
+ break;
+ case 2:
+ tempDetail3+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail3+=2;
+ break;
+ case 2:
+ tempDetail3+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail3-=3;
+ break;
+ }
+ }
+ if (!list3.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
+ tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
+ // 验证试验阶段
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
+
+ List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
+ if (collect10.isEmpty()){
+ collect10.add("0");
+ }
+ List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+ if (collect11.isEmpty()){
+ collect11.add("0");
+ }
+ List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list();
+ int tempDetail4 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail4+=2;
+ break;
+ case 2:
+ tempDetail4+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail4+=2;
+ break;
+ case 2:
+ tempDetail4+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail4-=3;
+ break;
+ }
+ }
+ if (!list4.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
+ tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
+ // 工艺开发工具
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
+ int tempDetail15= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail15+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
+ tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
+ if (!collect12.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+ // 验证与发布
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
+ int tempDetail16= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail16+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
+ tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
+ if (!collect13.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
+ // 立项报告
+ List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size());
+ if (!list5.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size()-1).getAuditTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO7.setStartTime(projectTeam.getCreateTime());
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+ // todo 临床试验积分
+ List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery().eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
+ if (!list6.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size()-1).getCreateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO8.setStartTime(projectTeam.getCreateTime());
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
+ tResultWorkEvaluateDetailVO.setEngineerList(tResultWorkEvaluateDetailEngineerVOS);
+ return R.ok(tResultWorkEvaluateDetailVO);
+ }
+ @ApiOperation(value = "查看详情-左侧数据-化验师工作内容评定")
+ @GetMapping(value = "/open/t-result-work-evaluate/getDetailByIdLeftTwo")
+ public R<TResultWorkEvaluateDetailVO> getDetailByIdLeftTwo(@RequestParam String id) {
+ TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
+ List<TResultWorkEvaluateDetailUserVO> tResultWorkEvaluateDetailUserVOS = new ArrayList<>();
+ TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
+ TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
+ TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).eq(TProjectTeamStaff::getRoleType, 3).last("limit 1")
+ .one();
+ tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
+
+ List<Long> role5 = projectTeamStaffService.lambdaQuery()
+ .eq(TProjectTeamStaff::getRoleType, 5).eq(TProjectTeamStaff::getTeamId, resultWorkEvaluate.getTeamId()).list()
+ .stream().map(TProjectTeamStaff::getUserId).collect(Collectors.toList());
+ List<SysUser> 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<TFeasibilityStudyReport> total = feasibilityStudyReportService.lambdaQuery()
+ .eq(TFeasibilityStudyReport::getStatus,3)
+ .eq(TFeasibilityStudyReport::getTeamId, resultWorkEvaluate.getTeamId()).list();
+ List<TResultWorkEvaluateDetailEngineerVO> tResultWorkEvaluateDetailEngineerVOS = new ArrayList<>();
+ for (SysUser sysUser : user5) {
+ TResultWorkEvaluateDetailUserVO tResultWorkEvaluateDetailUserVO = new TResultWorkEvaluateDetailUserVO();
+ tResultWorkEvaluateDetailUserVO.setUserName(sysUser.getNickName());
+ // 开发阶段
+ List<TResultWorkEvaluate> list1 = tResultWorkEvaluateService.lambdaQuery()
+ .eq(TResultWorkEvaluate::getEvaluateType,2)
+ .eq(TResultWorkEvaluate::getUserId,sysUser.getUserId())
+ .eq(TResultWorkEvaluate::getTeamId, resultWorkEvaluate.getTeamId()).list();
+ // 调度ids
+ List<String> collect = list1.stream().map(TResultWorkEvaluate::getDispatchId).collect(Collectors.toList());
+ if (collect.isEmpty()){
+ collect.add("0");
+ }
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
+ List<Integer> status = new ArrayList<>();
+ status.add(-1);
+ status.add(1);
+ status.add(3);
+ status.add(4);
+ status.add(5);
+ // 课题方案ids
+ List<String> collect6 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getId, collect)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
+ if (collect6.isEmpty()){
+ collect6.add("0");
+ }
+ List<TProjectProposal> list2 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
+ .notIn(TProjectProposal::getAuditStatus, status).list();
+ List<String> collect5 = list2.stream().filter(e -> e.getProjectStage().equals(1)).map(TProjectProposal::getId).collect(Collectors.toList());
+
+ if (collect6.isEmpty()){
+ collect6.add("0");
+ }
+ List<Integer> status1 = new ArrayList<>();
+ status1.add(-1);
+ status1.add(1);
+ status1.add(2);
+ status1.add(4);
+ int tempDetail2 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list1) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail2+=2;
+ break;
+ case 2:
+ tempDetail2+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail2+=2;
+ break;
+ case 2:
+ tempDetail2+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail2+=2;
+
+ break;
+ case 2:
+ tempDetail2+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail2-=3;
+ break;
+ }
+ }
+ if (!list1.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO2.setEndTime(list1.get(list1.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO2.setStartTime(projectTeam.getCreateTime());
+ tResultWorkEvaluateDetailEngineerVO2.setCount(collect5.size());
+ tResultWorkEvaluateDetailEngineerVO2.setIntegral(tempDetail2);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO2);
+
+ // 中试试验阶段
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO3 = new TResultWorkEvaluateDetailEngineerVO();
+ List<String> collect7 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
+ if (collect7.isEmpty()){
+ collect7.add("0");
+ }
+ List<String> collect8 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect7)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+ if (collect8.isEmpty()){
+ collect8.add("0");
+ }
+ List<Integer> status2 = new ArrayList<>();
+ status2.add(-1);
+ status2.add(1);
+ status2.add(2);
+ status2.add(4);
+ List<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect8).list();
+ int tempDetail3 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list3) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail3+=2;
+ break;
+ case 2:
+ tempDetail3+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail3+=2;
+ break;
+ case 2:
+ tempDetail3+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail3+=2;
+
+ break;
+ case 2:
+ tempDetail3+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail3-=3;
+ break;
+ }
+ }
+ if (!list3.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO3.setStartTime(list3.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO3.setEndTime(list3.get(list3.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO3.setCount(list3.size());
+ tResultWorkEvaluateDetailEngineerVO3.setIntegral(tempDetail3);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO3);
+ // 验证试验阶段
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO4 = new TResultWorkEvaluateDetailEngineerVO();
+
+ List<String> collect10 = list2.stream().filter(e -> e.getProjectStage().equals(2)).map(TProjectProposal::getId).collect(Collectors.toList());
+ if (collect10.isEmpty()){
+ collect10.add("0");
+ }
+ List<String> collect11 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect10)
+ .ne(TExperimentDispatch::getStatus, -1)
+ .ne(TExperimentDispatch::getStatus, 1).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
+ if (collect11.isEmpty()){
+ collect11.add("0");
+ }
+ List<TResultWorkEvaluate> list4 = tResultWorkEvaluateService.lambdaQuery().in(TResultWorkEvaluate::getDispatchId, collect11).list();
+ int tempDetail4 = 0;
+ for (TResultWorkEvaluate tResultWorkEvaluate : list4) {
+ Integer evaluateOne = tResultWorkEvaluate.getEvaluateOne();
+ switch (evaluateOne){
+ case 1:
+
+ tempDetail4+=2;
+ break;
+ case 2:
+ tempDetail4+=1;
+
+ break;
+
+ }
+ Integer evaluateTwo = tResultWorkEvaluate.getEvaluateTwo();
+ switch (evaluateTwo){
+ case 1:
+ tempDetail4+=2;
+ break;
+ case 2:
+ tempDetail4+=1;
+
+ break;
+ }
+ Integer evaluateThree = tResultWorkEvaluate.getEvaluateThree();
+ switch (evaluateThree){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateFour = tResultWorkEvaluate.getEvaluateFour();
+ switch (evaluateFour){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateFive = tResultWorkEvaluate.getEvaluateFive();
+ switch (evaluateFive){
+ case 1:
+ tempDetail4+=2;
+
+ break;
+ case 2:
+ tempDetail4+=1;
+ break;
+ }
+ Integer evaluateSix = tResultWorkEvaluate.getEvaluateSix();
+ switch (evaluateSix){
+ case 1:
+ tempDetail4-=3;
+ break;
+ }
+ }
+ if (!list4.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO4.setStartTime(list4.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO4.setEndTime(list4.get(list4.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO4.setCount(list4.size());
+ tResultWorkEvaluateDetailEngineerVO4.setIntegral(tempDetail4);
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO4);
+ // 工艺开发工具
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO5 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect12 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
+ int tempDetail15= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect12) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail15+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO5.setCount(collect12.size());
+ tResultWorkEvaluateDetailEngineerVO5.setIntegral(tempDetail15);
+ if (!collect12.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO5.setStartTime(collect12.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO5.setEndTime(collect12.get(collect12.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO5);
+ // 验证与发布
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO6 = new TResultWorkEvaluateDetailEngineerVO();
+ List<TFeasibilityStudyReport> collect13 = total.stream().filter(e -> e.getReportType().equals(3)).collect(Collectors.toList());
+ int tempDetail16= 0 ;
+ for (TFeasibilityStudyReport tFeasibilityStudyReport : collect13) {
+ if (StringUtils.hasLength(tFeasibilityStudyReport.getEvaluateScore())){
+ for (String s : tFeasibilityStudyReport.getEvaluateScore().split(",")) {
+ tempDetail16+=Integer.parseInt(s);
+ }
+ }
+ }
+ tResultWorkEvaluateDetailEngineerVO6.setCount(collect13.size());
+ tResultWorkEvaluateDetailEngineerVO6.setIntegral(tempDetail16);
+ if (!collect13.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO6.setStartTime(collect13.get(0).getEvaluateTime());
+ tResultWorkEvaluateDetailEngineerVO6.setEndTime(collect13.get(collect13.size()-1).getEvaluateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO6);
+ // 立项报告
+ List<TProjectApprovalReport> list5 = projectApprovalReportService.lambdaQuery().orderByDesc(BaseModel::getCreateTime).eq(TProjectApprovalReport::getTeamId, projectTeam.getId()).eq(TProjectApprovalReport::getStatus, 2).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO7 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO7.setCount(list5.size());
+ if (!list5.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO7.setEndTime(list5.get(list5.size()-1).getAuditTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO7.setStartTime(projectTeam.getCreateTime());
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO7);
+ // todo 临床试验积分
+ List<TClinicalTrialPoints> list6 = clinicalTrialPointsService.lambdaQuery().eq(TClinicalTrialPoints::getTeamId, projectTeam.getId()).list();
+ TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO8 = new TResultWorkEvaluateDetailEngineerVO();
+ tResultWorkEvaluateDetailEngineerVO8.setCount(list6.size());
+ if (!list6.isEmpty()){
+ tResultWorkEvaluateDetailEngineerVO8.setEndTime(list6.get(list6.size()-1).getCreateTime());
+ }
+ tResultWorkEvaluateDetailEngineerVO8.setStartTime(projectTeam.getCreateTime());
+ tResultWorkEvaluateDetailEngineerVOS.add(tResultWorkEvaluateDetailEngineerVO8);
+ tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
+ tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
+ }
+
+ return R.ok(tResultWorkEvaluateDetailVO);
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
index b345a64..1dbb3f7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TResultWorkEvaluateMapper.java
@@ -1,7 +1,13 @@
package com.ruoyi.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.vo.TResultWorkEvaluateVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +19,5 @@
*/
public interface TResultWorkEvaluateMapper extends BaseMapper<TResultWorkEvaluate> {
+ List<TResultWorkEvaluateVO> pageList(@Param("query")TResultWorkEvaluateQuery query,@Param("pageInfo") PageInfo<TResultWorkEvaluateVO> pageInfo);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
index 5536c9b..00b6967 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TResultWorkEvaluate.java
@@ -29,7 +29,9 @@
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
-
+ @ApiModelProperty(value = "项目组id")
+ @TableField("team_id")
+ private String teamId;
@ApiModelProperty(value = "调度id")
@TableField("dispatch_id")
private String dispatchId;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
new file mode 100644
index 0000000..8587bd5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import com.ruoyi.common.core.domain.model.TimeRangeQueryBody;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "项目组总积分分页query")
+public class TResultWorkEvaluateQuery extends TimeRangeQueryBody {
+
+ @ApiModelProperty(value = "项目组名称")
+ private String teamName;
+
+ @ApiModelProperty(value = "状态 -1=草稿箱 1=已提交")
+ private Integer status;
+ @ApiModelProperty(value = "当前登陆人所属项目组List 前端忽略")
+ private List<String> teamIds;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
index 8b085d4..b484826 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TResultWorkEvaluateService.java
@@ -1,7 +1,10 @@
package com.ruoyi.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.model.TResultWorkEvaluate;
+import com.ruoyi.system.query.TResultWorkEvaluateQuery;
+import com.ruoyi.system.vo.TResultWorkEvaluateVO;
/**
* <p>
@@ -13,4 +16,6 @@
*/
public interface TResultWorkEvaluateService extends IService<TResultWorkEvaluate> {
+ PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query);
+
}
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 599e83a..8c39ec8 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
@@ -1,10 +1,24 @@
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;
/**
* <p>
@@ -17,4 +31,189 @@
@Service
public class TTesterWorkEvaluateServiceImpl extends ServiceImpl<TResultWorkEvaluateMapper, TResultWorkEvaluate> implements TResultWorkEvaluateService {
+ @Override
+ public PageInfo<TResultWorkEvaluateVO> pageList(TResultWorkEvaluateQuery query) {
+ PageInfo<TResultWorkEvaluateVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+ List<TResultWorkEvaluateVO> list = this.baseMapper.pageList(query,pageInfo);
+ List<TResultWorkEvaluate> tResultWorkEvaluates = this.baseMapper.selectList(new LambdaQueryWrapper<TResultWorkEvaluate>()
+ .orderByDesc(TResultWorkEvaluate::getEvaluateTime));
+ 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;
+
+ 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;
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailEngineerVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailEngineerVO.java
new file mode 100644
index 0000000..f31d3ee
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailEngineerVO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.TResultWorkEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "实验员工作评定管理详情-左侧评定详情VO")
+public class TResultWorkEvaluateDetailEngineerVO{
+
+
+ @ApiModelProperty(value = "课题数/实验数")
+ private Integer count;
+ @ApiModelProperty(value = "积分数")
+ private Integer integral;
+ @ApiModelProperty(value = "评定开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime startTime;
+ @ApiModelProperty(value = "评定结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime endTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java
new file mode 100644
index 0000000..547b4cf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailUserVO.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "实验员工作评定管理详情-化验师实验员使用VO")
+public class TResultWorkEvaluateDetailUserVO {
+
+
+ @ApiModelProperty(value = "化验师/实验员名称")
+ private String userName;
+ @ApiModelProperty(value = "内容评定列表")
+ private List<TResultWorkEvaluateDetailEngineerVO> list;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailVO.java
new file mode 100644
index 0000000..362caf4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateDetailVO.java
@@ -0,0 +1,43 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.TResultWorkEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "实验员工作评定管理详情VO")
+public class TResultWorkEvaluateDetailVO extends TResultWorkEvaluate {
+
+ @ApiModelProperty(value = "项目组名称")
+ private String teamName;
+ @ApiModelProperty(value = "项目组总积分")
+ private Integer teamIntegral;
+ @ApiModelProperty(value = "工艺工程师总积分")
+ private Integer engineerIntegral;
+ @ApiModelProperty(value = "化验师总积分")
+ private Integer chemistIntegral;
+ @ApiModelProperty(value = "实验员总积分")
+ private Integer testerIntegral;
+ @ApiModelProperty(value = "实验终止次数")
+ private Integer termination;
+ @ApiModelProperty(value = "评定开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime startTime;
+ @ApiModelProperty(value = "评定结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime endTime;
+
+ @ApiModelProperty(value = "工艺工程师内容评定")
+ private List<TResultWorkEvaluateDetailEngineerVO> engineerList;
+ @ApiModelProperty(value = "化验室内容评定")
+ private List<TResultWorkEvaluateDetailUserVO> chemistList;
+ @ApiModelProperty(value = "实验员内容评定")
+ private List<TResultWorkEvaluateDetailUserVO> testerList;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
new file mode 100644
index 0000000..c378fef
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
@@ -0,0 +1,36 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.TQaReportFile;
+import com.ruoyi.system.model.TQaTestItemReport;
+import com.ruoyi.system.model.TResultWorkEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "实验员工作评定管理分页列表VO")
+public class TResultWorkEvaluateVO extends TResultWorkEvaluate {
+
+ @ApiModelProperty(value = "项目组名称")
+ private String teamName;
+ @ApiModelProperty(value = "项目组总积分")
+ private Integer teamIntegral;
+ @ApiModelProperty(value = "工艺工程师总积分")
+ private Integer engineerIntegral;
+ @ApiModelProperty(value = "化验师总积分")
+ private Integer chemistIntegral;
+ @ApiModelProperty(value = "实验员总积分")
+ private Integer testerIntegral;
+ @ApiModelProperty(value = "评定开始时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime startTime;
+ @ApiModelProperty(value = "评定结束时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime endTime;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
index ed5338c..394cf09 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
@@ -30,5 +30,28 @@
<sql id="Base_Column_List">
id, dispatch_id, user_id, result_report_id,evaluate_type, evaluate_one, evaluate_two, evaluate_three, evaluate_four, evaluate_five, evaluate_six, status, evaluate_person_id, evaluate_time,result_evaluate_json, create_time, update_time, create_by, update_by, disabled
</sql>
+ <select id="pageList" resultType="com.ruoyi.system.vo.TResultWorkEvaluateVO">
+ select t1.*,t2.team_name as teamName,t2.create_time as startTime from t_result_work_evaluate t1
+ left join t_project_team t2 on t1.team_id = t2.id
+ <where>
+ <if test="query.teamName != null and query.teamName != ''">
+ and t2.team_name like concat('%',#{query.teamName},'%')
+ </if>
+ <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+ AND t1.create_time BETWEEN #{query.startTime} AND #{query.endTime}
+ </if>
+ <if test="query.status != null">
+ AND t1.audit_status = #{query.auditStatus}
+ </if>
+ <if test="query.teamIds != null and query.teamIds > 0">
+ AND t1.team_id in
+ <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ group by t1.team_id
+ </select>
</mapper>
--
Gitblit v1.7.1