无关风月
3 天以前 20739d95d85d5d6744690093a061292325ce4a9b
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,6 @@
        // 开发阶段
        TResultWorkEvaluateDetailEngineerVO tResultWorkEvaluateDetailEngineerVO2 = new TResultWorkEvaluateDetailEngineerVO();
        List<Integer> status = new ArrayList<>();
        status.add(-1);
        status.add(1);
@@ -634,5 +686,321 @@
        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());
        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::getStatus,1)
                    .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 (collect5.isEmpty()){
                collect5.add("0");
            }
            // 开发阶段调度ids
            List<String> collect1 = experimentDispatchService.lambdaQuery().in(TExperimentDispatch::getProposalId, collect5).list().stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
            if (collect1.isEmpty()){
                collect1.add("0");
            }
            List<TResultWorkEvaluate> collect2 = list1.stream().filter(e -> collect1.contains(e.getDispatchId())).collect(Collectors.toList());
            int tempDetail2 = 0;
            for (TResultWorkEvaluate tResultWorkEvaluate : collect2) {
                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 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
                    .eq(TProjectProposal::getProjectStage,2)
                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().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<TResultWorkEvaluate> list3 = tResultWorkEvaluateService.lambdaQuery()
                    .eq(TResultWorkEvaluate::getStatus,1).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 = projectProposalService.lambdaQuery().in(TProjectProposal::getId, collect6)
                    .eq(TProjectProposal::getProjectStage,2)
                    .notIn(TProjectProposal::getAuditStatus, status).list().stream().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);
            // 工艺开发工具
            tResultWorkEvaluateDetailUserVO.setList(tResultWorkEvaluateDetailEngineerVOS);
            tResultWorkEvaluateDetailUserVOS.add(tResultWorkEvaluateDetailUserVO);
        }
        tResultWorkEvaluateDetailVO.setChemistList(tResultWorkEvaluateDetailUserVOS);
        return R.ok(tResultWorkEvaluateDetailVO);
    }
}