From c58bd98e23d43f8ff92b9b897999689a80b607e1 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 19 五月 2025 09:27:05 +0800
Subject: [PATCH] 项目总积分

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java |  412 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 407 insertions(+), 5 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 8440e25..17ba696 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
@@ -36,7 +36,6 @@
  * @author xiaochen
  * @since 2025-04-08
  */
-@Api(tags = "实验员工作评定管理")
 @RestController
 @RequestMapping("/t-result-work-evaluate")
 public class TResultWorkEvaluateController {
@@ -67,7 +66,7 @@
         this.projectTeamStaffService = projectTeamStaffService;
         this.sysUserService = sysUserService;
     }
-    @ApiOperation(value = "实验员工作评定管理分页列表", response = TQaTestItemReportQuery.class)
+    @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();
@@ -87,7 +86,7 @@
      * 查看取样记录详情
      */
     //@PreAuthorize("@ss.hasPermi('system:samplingRecord:detail')")
-    @ApiOperation(value = "查看详情")
+    @ApiOperation(value = "查看详情-顶部数据")
     @GetMapping(value = "/open/t-result-work-evaluate/getDetailById")
     public R<TResultWorkEvaluateDetailVO> getDetailById(@RequestParam String id) {
         TResultWorkEvaluateDetailVO tResultWorkEvaluateDetailVO = new TResultWorkEvaluateDetailVO();
@@ -95,8 +94,27 @@
         TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
         TProjectTeam projectTeam = projectTeamService.getById(resultWorkEvaluate.getTeamId());
         tResultWorkEvaluateDetailVO.setStartTime(projectTeam.getCreateTime());
-        TProjectTeamStaff one = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getRoleType, 3).last("limit 1").one();
-        Long userId = one.getUserId();
+        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;
@@ -266,6 +284,43 @@
         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();
@@ -311,9 +366,356 @@
 
         // 开发阶段
         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();
+
+        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<>();
+        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 tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
         List<Integer> status = new ArrayList<>();
         status.add(-1);
         status.add(1);

--
Gitblit v1.7.1