无关风月
2 天以前 bd953391a74b86db829df43992c7cf3c5207634b
Merge remote-tracking branch 'origin/master'
62个文件已修改
1036 ■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-prod.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-test.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/dto/TQaTestItemReportDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentDispatchMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TQaTestItemReportMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchParticipants.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TQaTestItemReport.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentDispatchService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentDispatchServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestMethodConfirmSheetOriginalServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentDispatchVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TQaTestItemVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTesterOtherTaskVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentDispatchController.java
@@ -78,6 +78,7 @@
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
@@ -253,8 +254,9 @@
     * 查询化验师的通过签字的实验调度
     */
    @ApiOperation(value = "查询化验师的通过签字的实验调度")
    @GetMapping(value = "/open/t-experiment-dispatch/chemistSignList")
    public R<List<TExperimentDispatch>> chemistSignList() {
    @PostMapping(value = "/api/t-experiment-dispatch/chemistSignList")
    public R<PageInfo<TExperimentDispatch>> chemistSignList(@RequestBody String param) {
        TExperimentDispatchQuery query = JSON.parseObject(param, TExperimentDispatchQuery.class);
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        if(roleType != 4){
@@ -268,35 +270,8 @@
            return R.fail("您没有通过签字的实验调度");
        }
        List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
        List<TExperimentDispatch> experimentDispatches = experimentDispatchService.list(Wrappers.lambdaQuery(TExperimentDispatch.class)
                .in(TExperimentDispatch::getId, dispatchIds)
                .in(TExperimentDispatch::getStatus, 1, 2));
        List<String> proposalIds = experimentDispatches.stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
        List<TProjectProposal> list = projectProposalService.list(Wrappers.lambdaQuery(TProjectProposal.class).in(TProjectProposal::getId, proposalIds));
        // 查询参与人员
        List<String> ids = experimentDispatches.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(ids)){
            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                    .in(TExperimentDispatchParticipants::getDispatchId, ids));
            List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
            tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> {
                SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null);
                if(sysUser != null){
                    tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
                }
            });
            experimentDispatches.forEach(experimentDispatch -> {
                list.stream().filter(projectProposal -> projectProposal.getId().equals(experimentDispatch.getProposalId())).findFirst().ifPresent(projectProposal -> {
                    experimentDispatch.setProjectName(projectProposal.getProjectName());
                });
                List<TExperimentDispatchParticipants> experimentDispatchParticipantsList = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(experimentDispatch.getId())).collect(Collectors.toList());
                String participantsName = experimentDispatchParticipantsList.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";"));
                experimentDispatch.setParticipantsName(participantsName);
            });
        }
        query.setDispatchIds(dispatchIds);
        PageInfo<TExperimentDispatch> experimentDispatches = experimentDispatchService.chemistSignList(query);
        return R.ok(experimentDispatches);
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentResultReportController.java
@@ -82,6 +82,7 @@
        TExperimentResultReportQuery query = JSON.parseObject(param, TExperimentResultReportQuery.class);
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if(roleType != 1){
            if(roleType ==2){
                // 查询项目组
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TExperimentSchemeController.java
@@ -81,6 +81,7 @@
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
@@ -122,6 +123,7 @@
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            // 查询实验参与人员
@@ -152,6 +154,7 @@
                if(sysUser != null){
                    tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
                    tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar());
                    tExperimentDispatchParticipant.setCreateTime(sysUser.getCreateTime());
                }
            });
        }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TFeasibilityStudyReportController.java
@@ -284,6 +284,14 @@
        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
        feasibilityStudyReportVO.setStaffNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
        feasibilityStudyReportVO.setProjectTeam(projectTeam);
        SysUser sysUser = sysUserService.selectUserById(feasibilityStudyReport.getAuditPersonId());
        if(Objects.nonNull(sysUser)){
            feasibilityStudyReportVO.setAuditPersonName(sysUser.getNickName());
        }
        SysUser sysUser1 = sysUserService.selectUserById(feasibilityStudyReport.getEvaluatePersonId());
        if(Objects.nonNull(sysUser1)){
            feasibilityStudyReportVO.setEvaluatePersonName(sysUser.getNickName());
        }
        return R.ok(feasibilityStudyReportVO);
    }
@@ -322,7 +330,7 @@
    @PutMapping(value = "/open/t-feasibility-study-report/revokedReport")
    public R<Boolean> revokedReport(@RequestParam String id) {
        TFeasibilityStudyReport feasibilityStudyReport = feasibilityStudyReportService.getById(id);
        feasibilityStudyReport.setStatus(FeasibilityStudyReportStatusEnum.REVOKED.getCode());
        feasibilityStudyReport.setStatus(FeasibilityStudyReportStatusEnum.DRAFTS.getCode());
        feasibilityStudyReportService.updateById(feasibilityStudyReport);
        return R.ok();
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
@@ -71,6 +71,38 @@
    @PostMapping(value = "/api/t-inspection-report/pageList")
    public R<PageInfo<TInspectionReportVO>> pageList(@RequestBody String param) {
        TInspectionReportQuery query = JSON.parseObject(param, TInspectionReportQuery.class);
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
                // 查询项目组
                TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                        .eq(TProjectTeamStaff::getUserId, userId));
                // 查询项目的工艺工程师id
                TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                        .eq(TProjectTeamStaff::getTeamId, projectTeamStaff.getTeamId())
                        .eq(TProjectTeamStaff::getRoleType, 3)
                        .last("LIMIT 1"));
                // 查询实验参与人员
                List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                        .eq(TExperimentDispatchParticipants::getUserId, teamStaff.getUserId()));
                if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
                    List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
                    query.setDispatchIds(dispatchIds);
                }
            }else {
                // 查询实验参与人员
                List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                        .eq(TExperimentDispatchParticipants::getUserId, userId));
                if (!CollectionUtils.isEmpty(experimentDispatchParticipants)) {
                    List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
                    query.setDispatchIds(dispatchIds);
                }
            }
        }
        return R.ok(inspectionReportService.pageList(query));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectProposalController.java
@@ -71,6 +71,7 @@
        // 获取当前登录人
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if(roleType != 1){
            // 查询用户所在项目组
            List<TProjectTeamStaff> projectTeamStaffs = projectTeamStaffService.list(Wrappers.lambdaQuery(TProjectTeamStaff.class)
@@ -79,6 +80,8 @@
                // 查询项目组id
                List<String> teamIds = projectTeamStaffs.stream().map(TProjectTeamStaff::getTeamId).distinct().collect(Collectors.toList());
                query.setTeamIds(teamIds);
            }else{
                return R.fail("当前用户未分配项目组,无法查看项目课题方案");
            }
        }
        return R.ok(projectProposalService.pageList(query));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TProjectTeamController.java
@@ -12,17 +12,15 @@
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TProjectTeamDTO;
import com.ruoyi.system.dto.UpAndDownDTO;
import com.ruoyi.system.model.TProjectTeam;
import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TProjectTeamQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TProjectTeamService;
import com.ruoyi.system.service.TProjectTeamStaffService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TProjectTeamVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -46,12 +44,38 @@
    private final TProjectTeamStaffService projectTeamStaffService;
    private final ISysUserService sysUserService;
    private final TokenService tokenService;
    private final TProjectProposalService projectProposalService;
    private final TExperimentDispatchService experimentDispatchService;
    private final TTestMethodConfirmSheetService testMethodConfirmSheetService;
    private final TExperimentSchemeService experimentSchemeService;
    private final TSamplingRecordService samplingRecordService;
    private final TExperimentResultReportService experimentResultReportService;
    private final TQaTestItemService qaTestItemService;
    private final TQaProduceReportService qaProduceReportService;
    private final TFeasibilityStudyReportService feasibilityStudyReportService;
    private final TInspectionReportService inspectionReportService;
    private final TProjectApprovalReportService projectApprovalReportService;
    private final TTesterOtherTaskService testerOtherTaskService;
    private final TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService;
    @Autowired
    public TProjectTeamController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, TokenService tokenService) {
    public TProjectTeamController(TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService, ISysUserService sysUserService, TokenService tokenService, TProjectProposalService projectProposalService, TExperimentDispatchService experimentDispatchService, TTestMethodConfirmSheetService testMethodConfirmSheetService, TExperimentSchemeService experimentSchemeService, TSamplingRecordService samplingRecordService, TExperimentResultReportService experimentResultReportService, TQaTestItemService qaTestItemService, TQaProduceReportService qaProduceReportService, TFeasibilityStudyReportService feasibilityStudyReportService, TInspectionReportService inspectionReportService, TProjectApprovalReportService projectApprovalReportService, TTesterOtherTaskService testerOtherTaskService, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService) {
        this.projectTeamService = projectTeamService;
        this.projectTeamStaffService = projectTeamStaffService;
        this.sysUserService = sysUserService;
        this.tokenService = tokenService;
        this.projectProposalService = projectProposalService;
        this.experimentDispatchService = experimentDispatchService;
        this.testMethodConfirmSheetService = testMethodConfirmSheetService;
        this.experimentSchemeService = experimentSchemeService;
        this.samplingRecordService = samplingRecordService;
        this.experimentResultReportService = experimentResultReportService;
        this.qaTestItemService = qaTestItemService;
        this.qaProduceReportService = qaProduceReportService;
        this.feasibilityStudyReportService = feasibilityStudyReportService;
        this.inspectionReportService = inspectionReportService;
        this.projectApprovalReportService = projectApprovalReportService;
        this.testerOtherTaskService = testerOtherTaskService;
        this.testMethodConfirmSheetOriginalService = testMethodConfirmSheetOriginalService;
    }
    /**
@@ -198,6 +222,100 @@
        TProjectTeam projectTeam = projectTeamService.getById(dto.getId());
        projectTeam.setStatus(dto.getStatus());
        projectTeamService.updateById(projectTeam);
        // 封存项目课题方案
        List<TProjectProposal> projectProposals = projectProposalService.list(Wrappers.lambdaQuery(TProjectProposal.class)
                .eq(TProjectProposal::getTeamId, dto.getId()));
        if(!CollectionUtils.isEmpty(projectProposals)){
            for (TProjectProposal projectProposal : projectProposals) {
                projectProposal.setAuditStatus(5);
            }
            projectProposalService.updateBatchById(projectProposals);
            List<String> projectIds = projectProposals.stream().map(TProjectProposal::getId).collect(Collectors.toList());
            // 封存实验调度
            List<TExperimentDispatch> experimentDispatches = experimentDispatchService.list(Wrappers.lambdaQuery(TExperimentDispatch.class)
                    .in(TExperimentDispatch::getProposalId, projectIds));
            if(!CollectionUtils.isEmpty(experimentDispatches)){
                experimentDispatches.forEach(experimentDispatch -> {
                    experimentDispatch.setStatus(3);
                });
                experimentDispatchService.updateBatchById(experimentDispatches);
                // 封存检验方法
                List<String> dispatchIds = experimentDispatches.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
                List<TTestMethodConfirmSheet> testMethodConfirmSheets = testMethodConfirmSheetService.list(Wrappers.lambdaQuery(TTestMethodConfirmSheet.class)
                        .in(TTestMethodConfirmSheet::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(testMethodConfirmSheets)){
                    testMethodConfirmSheets.forEach(testMethodConfirmSheet -> {
                        testMethodConfirmSheet.setAuditStatus(5);
                    });
                    testMethodConfirmSheetService.updateBatchById(testMethodConfirmSheets);
                }
                // 封存试验方案
                List<TExperimentScheme> experimentSchemes = experimentSchemeService.list(Wrappers.lambdaQuery(TExperimentScheme.class)
                        .in(TExperimentScheme::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(experimentSchemes)){
                    experimentSchemes.forEach(experimentScheme -> {
                        experimentScheme.setStatus(5);
                    });
                    experimentSchemeService.updateBatchById(experimentSchemes);
                }
                // 封存取样记录
                List<TSamplingRecord> samplingRecords = samplingRecordService.list(Wrappers.lambdaQuery(TSamplingRecord.class)
                        .in(TSamplingRecord::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(samplingRecords)){
                    samplingRecords.forEach(samplingRecord -> {
                        samplingRecord.setStatus(3);
                    });
                    samplingRecordService.updateBatchById(samplingRecords);
                }
                // 封存结果汇报
                List<TExperimentResultReport> experimentResultReports = experimentResultReportService.list(Wrappers.lambdaQuery(TExperimentResultReport.class)
                        .in(TExperimentResultReport::getDispatchId, dispatchIds));
                if(!CollectionUtils.isEmpty(experimentResultReports)){
                    experimentResultReports.forEach(experimentResultReport -> {
                        experimentResultReport.setStatus(4);
                    });
                    experimentResultReportService.updateBatchById(experimentResultReports);
                }
            }
        }
        // 封存检测项
//        List<TQaTestItem> qaTestItems = qaTestItemService.list(Wrappers.lambdaQuery(TQaTestItem.class)
//                .eq(TQaTestItem::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(qaTestItems)){
//            qaTestItems.forEach(qaTestItem -> {
//                qaTestItem.setStatus(4);
//            });
//            qaTestItemService.updateBatchById(qaTestItems);
//        }
        // 封存中试
//        List<TQaProduceReport> qaProduceReports = qaProduceReportService.list(Wrappers.lambdaQuery(TQaProduceReport.class)
//                .eq(TQaProduceReport::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(qaProduceReports)){
//            qaProduceReports.forEach(qaProduceReport -> {
//                qaProduceReport.setStatus(4);
//            });
//            qaProduceReportService.updateBatchById(qaProduceReports);
//        }
        // 封存可行等报告
//        List<TFeasibilityStudyReport> feasibilityStudyReports = feasibilityStudyReportService.list(Wrappers.lambdaQuery(TFeasibilityStudyReport.class)
//                .eq(TFeasibilityStudyReport::getTeamId, dto.getId()));
//        if(!CollectionUtils.isEmpty(feasibilityStudyReports)){
//            feasibilityStudyReports.forEach(feasibilityStudyReport -> {
//                feasibilityStudyReport.setStatus(4);
//            });
//            feasibilityStudyReportService.updateBatchById(feasibilityStudyReports);
//        }
        return R.ok();
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaProduceReportController.java
@@ -7,7 +7,10 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.*;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.QAProduceReportStatusEnum;
import com.ruoyi.common.enums.QaReportFileEnum;
import com.ruoyi.common.enums.QaReportTypeEnum;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AuditStatusDTO;
import com.ruoyi.system.dto.TQaProduceReportDTO;
@@ -23,6 +26,7 @@
import com.ruoyi.system.vo.TQaProduceReportVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@@ -42,6 +46,7 @@
 * @author xiaochen
 * @since 2025-04-08
 */
@Slf4j
@Api(tags = "中试、生产验证分析报告;辅料;产品报告管理")
@RestController
@RequestMapping("")
@@ -156,7 +161,7 @@
            return R.fail("当前用户未分配项目组,无法创建项目课题方案");
        }
        // 查询项目组
        TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
        TProjectTeam projectTeam = projectTeamService.getById(dto.getTeamId());
        if(Objects.isNull(projectTeam)){
            return R.fail("项目组不存在");
        }
@@ -369,7 +374,7 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:qaTestItem:evaluate')")
    @Log(title = "中试、生产验证分析报告;辅料;产品报告管理信息-评定中试、生产验证分析报告;辅料;产品报告管理信息", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "评定QA检测项管理",response = TQaProduceReportEvaluateDTO.class)
    @ApiOperation(value = "评定中试、生产验证分析报告;辅料;产品报告管理信息",response = TQaProduceReportEvaluateDTO.class)
    @PostMapping(value = "/api/t-qa-produce-report/evaluate")
    public R<Boolean> evaluate(@RequestBody String param) {
        TQaProduceReportEvaluateDTO dto = JSON.parseObject(param,TQaProduceReportEvaluateDTO.class);
@@ -382,6 +387,6 @@
        qaProduceReportService.updateById(qaProduceReport);
        return R.ok();
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemController.java
@@ -34,6 +34,7 @@
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -149,6 +150,12 @@
        BeanUtils.copyProperties(testItem, testItemVO);
        // 查询QA检测项检测报告
        List<TQaTestItemReportVO> qaTestItemReportVOS= qaTestItemReportService.getList(id);
        for (TQaTestItemReportVO qaTestItemReportVO : qaTestItemReportVOS) {
            SysUser sysUser = sysUserMapper.selectUserById(qaTestItemReportVO.getAuditPersonId());
            if(Objects.nonNull(sysUser)){
                qaTestItemReportVO.setAuditPersonName(sysUser.getNickName());
            }
        }
        testItemVO.setQaTestItemReportList(qaTestItemReportVOS);
        // 查询项目组名称
        TProjectTeam projectTeam = projectTeamService.getById(testItemVO.getTeamId());
@@ -167,6 +174,11 @@
                });
            }
            projectTeamVO.setStaffs(list);
        }
        // 查询评定人名称
        SysUser sysUser = sysUserMapper.selectUserById(testItem.getEvaluatePersonId());
        if (Objects.nonNull(sysUser)) {
            testItemVO.setEvaluatePersonName(sysUser.getNickName());
        }
        testItemVO.setProjectTeamVO(projectTeamVO);
        return R.ok(testItemVO);
@@ -222,7 +234,7 @@
    public R<Boolean> evaluate(@RequestBody String param) {
        TQaTestItemEvaluateDTO dto = JSON.parseObject(param,TQaTestItemEvaluateDTO.class);
        Long userId = tokenService.getLoginUser().getUserId();
        TQaTestItem testItem = qaTestItemService.getById(dto);
        TQaTestItem testItem = qaTestItemService.getById(dto.getId());
        testItem.setStatus(QATestItemStatusEnum.EVALUATED.getCode());
        testItem.setEvaluatePersonId(userId);
        testItem.setEvaluateTime(LocalDateTime.now());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TQaTestItemReportController.java
@@ -90,9 +90,17 @@
     */
    @ApiOperation(value = "获取QA检测项报告管理下拉列表-化验师使用、评定使用")
    @GetMapping(value = "/open/t-qa-test-item-report/getListByItemId")
    public R<List<TQaTestItemReport>> getListByItemId(@RequestParam String itemId) {
        List<TQaTestItemReport> list = qaTestItemReportService.list(Wrappers.lambdaQuery(TQaTestItemReport.class)
                .eq(TQaTestItemReport::getItemId, itemId));
    public R<List<TQaTestItemReportVO>> getListByItemId(@RequestParam String itemId) {
        List<TQaTestItemReportVO> list = qaTestItemReportService.getListByItemId(itemId);
        if(!CollectionUtils.isEmpty(list)){
            List<SysUser> sysUsers = sysUserService.selectList();
            list.forEach(itemReport -> {
                SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(itemReport.getAuditPersonId())).findFirst().orElse(null);
                if(Objects.nonNull(sysUser)){
                    itemReport.setAuditPersonName(sysUser.getNickName());
                }
            });
        }
        return R.ok(list);
    }
@@ -105,16 +113,8 @@
    @PostMapping(value = "/api/t-qa-test-item-report/add")
    public R<Boolean> add(@RequestBody String param) {
        TQaTestItemReportDTO dto = JSON.parseObject(param,TQaTestItemReportDTO.class);
        // 通过当前用户查询项目组
        Long userId = tokenService.getLoginUser().getUserId();
        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getUserId, userId)
                .last("LIMIT 1"));
        if(Objects.isNull(projectTeamStaff)){
            return R.fail("当前用户未分配项目组,无法创建项目课题方案");
        }
        // 查询项目组
        TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
        TProjectTeam projectTeam = projectTeamService.getById(dto.getTeamId());
        if(Objects.isNull(projectTeam)){
            return R.fail("项目组不存在");
        }
@@ -133,11 +133,13 @@
        qaTestItemReportService.save(dto);
        // 添加检测报告文件
        List<TQaReportFile> qaReportFiles = dto.getQaReportFiles();
        for (TQaReportFile qaReportFile : qaReportFiles) {
            qaReportFile.setReportId(dto.getId());
            qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode());
        if(!CollectionUtils.isEmpty(qaReportFiles)){
            for (TQaReportFile qaReportFile : qaReportFiles) {
                qaReportFile.setReportId(dto.getId());
                qaReportFile.setReportType(QaReportFileEnum.TEST_REPORT.getCode());
            }
            qaReportFileService.saveBatch(qaReportFiles);
        }
        qaReportFileService.saveBatch(qaReportFiles);
        return R.ok();
    }
@@ -225,7 +227,7 @@
    @PutMapping(value = "/open/t-qa-test-item-report/revokedReport")
    public R<Boolean> revokedReport(@RequestParam String id) {
        TQaTestItemReport testItemReport = qaTestItemReportService.getById(id);
        testItemReport.setStatus(QATestItemReportStatusEnum.REVOKED.getCode());
        testItemReport.setStatus(QATestItemReportStatusEnum.DRAFTS.getCode());
        qaTestItemReportService.updateById(testItemReport);
        return R.ok();
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TResultWorkEvaluateController.java
@@ -11,8 +11,8 @@
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.dto.TResultWorkEvaluateDTO;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.ResultEvaluateChemistTesterQuery;
import com.ruoyi.system.query.TProjectApprovalReportQuery;
@@ -21,6 +21,7 @@
import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -28,6 +29,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -71,6 +73,8 @@
    private TProjectTeamStaffService projectTeamStaffService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
@@ -125,13 +129,85 @@
     */
    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:add')")
    @Log(title = "实验结果工作评定管理-新增化验师、实验员工作评定", businessType = BusinessType.INSERT)
    @ApiOperation(value = "新增化验师、实验员工作评定", response = TQaTestItemDTO.class)
    @ApiOperation(value = "新增化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
    @PostMapping(value = "/api/t-result-work-evaluate/add")
    public R<Boolean> add(@RequestBody String param) {
        TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
        tResultWorkEvaluateService.save(dto);
        return R.ok();
    }
    /**
     * 编辑化验师、实验员工作评定
     */
    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:edit')")
    @Log(title = "实验结果工作评定管理-编辑化验师、实验员工作评定", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "编辑化验师、实验员工作评定", response = TResultWorkEvaluateDTO.class)
    @PostMapping(value = "/api/t-result-work-evaluate/edit")
    public R<Boolean> edit(@RequestBody String param) {
        TResultWorkEvaluateDTO dto = JSON.parseObject(param, TResultWorkEvaluateDTO.class);
        tResultWorkEvaluateService.updateById(dto);
        return R.ok();
    }
    /**
     * 删除化验师、实验员工作评定
     */
    //@PreAuthorize("@ss.hasPermi('system:resultWorkEvaluate:delete')")
    @Log(title = "实验结果工作评定管理-删除化验师、实验员工作评定", businessType = BusinessType.DELETE)
    @ApiOperation(value = "删除化验师、实验员工作评定")
    @DeleteMapping(value = "/open/t-result-work-evaluate/deleteById")
    public R<Boolean> deleteById(@RequestBody String id) {
        tResultWorkEvaluateService.removeById(id);
        return R.ok();
    }
    /**
     * 查看实验结果工作评定管理详情
     */
    //@PreAuthorize("@ss.hasPermi('system:testMethodConfirmSheet:detail')")
    @ApiOperation(value = "查看实验结果工作评定管理详情")
    @GetMapping(value = "/open/t-result-work-evaluate/getEvaluateDetailById")
    public R<TResultWorkEvaluateVO> getEvaluateDetailById(@RequestParam String id) {
        // 查询实验结果工作评定
        TResultWorkEvaluate resultWorkEvaluate = tResultWorkEvaluateService.getById(id);
        TResultWorkEvaluateVO tResultWorkEvaluateVO = new TResultWorkEvaluateVO();
        BeanUtils.copyProperties(resultWorkEvaluate, tResultWorkEvaluateVO);
        // 查询实验调度
        TExperimentDispatch experimentDispatch = experimentDispatchService.getById(resultWorkEvaluate.getDispatchId());
        // 查询实验调度信息
        if(Objects.nonNull(experimentDispatch)){
            // 查询课题方案名称
            TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
            if(Objects.nonNull(projectProposal)){
                experimentDispatch.setProjectName(projectProposal.getProjectName());
                experimentDispatch.setProjectCode(projectProposal.getProjectCode());
            }
            // 查询参与人员
            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                    .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()));
            List<Long> userIds1 = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
            List<SysUser> sysUsers1 = sysUserMapper.selectUserByIds(userIds1);
            String participantsName = sysUsers1.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
            experimentDispatch.setParticipantsName(participantsName);
        }
        tResultWorkEvaluateVO.setExperimentDispatch(experimentDispatch);
        // 查询被评定人
        SysUser sysUser = sysUserService.selectUserById(tResultWorkEvaluateVO.getUserId());
        if(tResultWorkEvaluateVO.getEvaluateType() == 2){
            // 化验师
            tResultWorkEvaluateVO.setChemistName(sysUser.getNickName());
        }else {
            // 实验员
            tResultWorkEvaluateVO.setTesterName(sysUser.getNickName());
        }
        return R.ok(tResultWorkEvaluateVO);
    }
    /**
@@ -150,7 +226,8 @@
            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
            return R.ok(sysUsers);
        }
        return R.ok();
        List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
        return R.ok(sysUsers);
    }
    /**
     * 查询可评定的实验员
@@ -168,7 +245,8 @@
            List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(nickName,userIds);
            return R.ok(sysUsers);
        }
        return R.ok();
        List<SysUser> sysUsers = sysUserService.selectListByNameAndUserIds(null,userIds);
        return R.ok(sysUsers);
    }
    /**
@@ -229,7 +307,6 @@
        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());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSamplingRecordController.java
@@ -82,6 +82,7 @@
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
@@ -351,9 +352,9 @@
                .in(TSamplingRecordOperation::getId, ids));
        for (TSamplingRecordOperation samplingRecordOperation : samplingRecordOperations) {
            samplingRecordOperation.setStatus(3);
            samplingRecordOperation.setSendPersonId(userId);
            samplingRecordOperation.setSendSign(samplingRecordOperation.getReceiptsSign());
            samplingRecordOperation.setSendTime(LocalDateTime.now());
            samplingRecordOperation.setReceiptsPersonId(userId);
            samplingRecordOperation.setReceiptsSign(samplingRecordOperation.getReceiptsSign());
            samplingRecordOperation.setReceiptsTime(LocalDateTime.now());
        }
        samplingRecordOperationService.updateBatchById(samplingRecordOperations);
        return R.ok();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetController.java
@@ -82,6 +82,7 @@
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        query.setRoleType(roleType);
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
@@ -123,18 +124,29 @@
    public R<Boolean> add(@RequestBody String param) {
        TTestMethodConfirmSheetDTO dto = JSON.parseObject(param,TTestMethodConfirmSheetDTO.class);
        Long userId = tokenService.getLoginUser().getUserId();
        dto.setCommitUserId(userId);
        testMethodConfirmSheetService.save(dto);
        List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms();
        testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> {
            testMethodConfirmSheetTerm.setTestId(dto.getId());
            testMethodConfirmSheetTerm.setStatus(1);
        });
        testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms);
        // 通过当前用户查询项目组
        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getUserId, userId)
        TExperimentDispatch experimentDispatch = experimentDispatchService.getOne(Wrappers.lambdaQuery(TExperimentDispatch.class)
                .eq(TExperimentDispatch::getId, dto.getDispatchId()));
        if(Objects.isNull(experimentDispatch)){
            return R.fail("实验调度不存在");
        }
        // 查询调度的参与人员
        TExperimentDispatchParticipants experimentDispatchParticipant = experimentDispatchParticipantsService.getOne(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                .eq(TExperimentDispatchParticipants::getDispatchId, dto.getDispatchId())
                .eq(TExperimentDispatchParticipants::getRoleType,3)
                .last("LIMIT 1"));
        if(Objects.isNull(experimentDispatchParticipant)){
            return R.fail("实验调度参与人员不存在");
        }
        // 查询工艺工程师所在的项目组
        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getUserId, experimentDispatchParticipant.getUserId())
                .eq(TProjectTeamStaff::getRoleType, 3)
                .last("LIMIT 1"));
        // 通过当前用户查询项目组
        if(Objects.isNull(projectTeamStaff)){
            return R.fail("当前用户未分配项目组,无法创建项目课题方案");
        }
@@ -146,6 +158,15 @@
        if(projectTeam.getStatus() == 2){
            return R.fail("项目组已封存,无法创建项目课题方案");
        }
        dto.setCommitUserId(userId);
        testMethodConfirmSheetService.save(dto);
        List<TTestMethodConfirmSheetTerm> testMethodConfirmSheetTerms = dto.getTestMethodConfirmSheetTerms();
        testMethodConfirmSheetTerms.forEach(testMethodConfirmSheetTerm -> {
            testMethodConfirmSheetTerm.setTestId(dto.getId());
            testMethodConfirmSheetTerm.setStatus(1);
        });
        testMethodConfirmSheetTermService.saveBatch(testMethodConfirmSheetTerms);
        // 生成原始记录编号
        String format = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String originalCode = projectTeam.getTeamName() + format.substring(2) + "-JL";
@@ -215,11 +236,22 @@
        if(Objects.nonNull(experimentDispatch)){
            testMethodConfirmSheetVO.setExperimentName(experimentDispatch.getExperimentName());
            testMethodConfirmSheetVO.setExperimentCode(experimentDispatch.getExperimentCode());
            testMethodConfirmSheetVO.setExperimentStartTime(experimentDispatch.getExperimentStartTime());
            testMethodConfirmSheetVO.setExperimentEndTime(experimentDispatch.getExperimentEndTime());
            testMethodConfirmSheetVO.setExperimentDate(experimentDispatch.getExperimentDate());
            // 查询项目课题方案
            TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
            if(Objects.nonNull(projectProposal)){
                testMethodConfirmSheetVO.setProjectName(projectProposal.getProjectName());
            }
            // 查询参与人员
            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                    .eq(TExperimentDispatchParticipants::getDispatchId, experimentDispatch.getId()));
            List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).distinct().collect(Collectors.toList());
            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
            String participantsName = sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(";"));
            testMethodConfirmSheetVO.setParticipantsName(participantsName);
            testMethodConfirmSheetVO.setStatus(experimentDispatch.getStatus());
        }
        // 查询审核人姓名
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTestMethodConfirmSheetOriginalController.java
@@ -10,22 +10,21 @@
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TTestMethodConfirmSheetOriginalDTO;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.model.TTestMethodConfirmSheetOriginal;
import com.ruoyi.system.model.TTestMethodConfirmSheetOriginalData;
import com.ruoyi.system.model.TTestMethodConfirmSheetTerm;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TTestMethodConfirmSheetOriginalQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TTestMethodConfirmSheetOriginalDataService;
import com.ruoyi.system.service.TTestMethodConfirmSheetOriginalService;
import com.ruoyi.system.service.TTestMethodConfirmSheetTermService;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TTestMethodConfirmSheetOriginalVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -46,14 +45,20 @@
    private final TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService;
    private final TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService;
    private final TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService;
    private final TProjectTeamStaffService projectTeamStaffService;
    private final TExperimentDispatchParticipantsService experimentDispatchParticipantsService;
    private final TInspectionReportService inspectionReportService;
    @Autowired
    public TTestMethodConfirmSheetOriginalController(TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService) {
    public TTestMethodConfirmSheetOriginalController(TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TTestMethodConfirmSheetOriginalService testMethodConfirmSheetOriginalService, TTestMethodConfirmSheetOriginalDataService testMethodConfirmSheetOriginalDataService, TTestMethodConfirmSheetTermService testMethodConfirmSheetTermService, TProjectTeamStaffService projectTeamStaffService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TInspectionReportService inspectionReportService) {
        this.tokenService = tokenService;
        this.sysUserService = sysUserService;
        this.sysUserMapper = sysUserMapper;
        this.testMethodConfirmSheetOriginalService = testMethodConfirmSheetOriginalService;
        this.testMethodConfirmSheetOriginalDataService = testMethodConfirmSheetOriginalDataService;
        this.testMethodConfirmSheetTermService = testMethodConfirmSheetTermService;
        this.projectTeamStaffService = projectTeamStaffService;
        this.experimentDispatchParticipantsService = experimentDispatchParticipantsService;
        this.inspectionReportService = inspectionReportService;
    }
    /**
@@ -64,6 +69,60 @@
    @PostMapping(value = "/api/t-test-method-confirm-sheet-original/pageList")
    public R<PageInfo<TTestMethodConfirmSheetOriginalVO>> pageList(@RequestBody String param) {
        TTestMethodConfirmSheetOriginalQuery query = JSON.parseObject(param, TTestMethodConfirmSheetOriginalQuery.class);
        // 获取当前用户
        Long userId = tokenService.getLoginUser().getUserId();
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        if (roleType != 1){
            query.setUserId(userId);
            if(roleType ==2){
                // 查询项目组
                TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                        .eq(TProjectTeamStaff::getUserId, userId));
                // 查询项目的工艺工程师id
                TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                        .eq(TProjectTeamStaff::getTeamId, projectTeamStaff.getTeamId())
                        .eq(TProjectTeamStaff::getRoleType, 3)
                        .last("LIMIT 1"));
                // 查询实验参与人员
                List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                        .eq(TExperimentDispatchParticipants::getUserId, teamStaff.getUserId()));
                if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
                    List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
                    query.setDispatchIds(dispatchIds);
                }
            }else {
                // 查询实验参与人员
                List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                        .eq(TExperimentDispatchParticipants::getUserId, userId));
                if (!CollectionUtils.isEmpty(experimentDispatchParticipants)) {
                    List<String> dispatchIds = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
                    query.setDispatchIds(dispatchIds);
                }
            }
            if(roleType == 4){
                // 查询检验报告
                List<TInspectionReport> inspectionReports = inspectionReportService.list(Wrappers.lambdaQuery(TInspectionReport.class)
                        .eq(TInspectionReport::getStatus, 1));
                if (!CollectionUtils.isEmpty(inspectionReports)) {
                    List<String> dispatchIds = inspectionReports.stream().map(TInspectionReport::getDispatchId).distinct().collect(Collectors.toList());
                    List<String> dispatchIds1 = query.getDispatchIds();
                    Iterator<String> iterator = dispatchIds1.iterator();
                    while (iterator.hasNext()) {
                        String next = iterator.next();
                        if (!dispatchIds.contains(next)) {
                            iterator.remove();
                        }
                    }
                    if(CollectionUtils.isEmpty(dispatchIds1)){
                        List<String> id = new ArrayList<>();
                        id.add("-1");
                        query.setDispatchIds(id);
                    }else {
                        query.setDispatchIds(dispatchIds1);
                    }
                }
            }
        }
        return R.ok(testMethodConfirmSheetOriginalService.pageList(query));
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTesterOtherTaskController.java
@@ -144,6 +144,13 @@
        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
        // 拼接项目组成员名称
        projectTeamVO.setStaffName(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
        projectTeamStaffs.stream().forEach(projectTeamStaff -> {
            SysUser user = sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(projectTeamStaff.getUserId())).findFirst().orElse(null);
            if(Objects.nonNull(user)){
                projectTeamStaff.setNickName(user.getNickName());
            }
        });
        projectTeamVO.setStaffs(projectTeamStaffs);
        testerOtherTaskVO.setProjectTeam(projectTeamVO);
        // 查询是演员信息
        SysUser sysUser = sysUserMapper.selectUserById(testerOtherTaskVO.getTesterId());
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
@@ -50,10 +50,8 @@
        //  获取登录信息
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        if (StringUtils.isNotBlank(userName)){
            this.setFieldValByName("createBy", userName, metaObject);
            this.setFieldValByName("updateBy", userName, metaObject);
        } else {
            this.setFieldValByName("createBy", userName, metaObject);
            this.setFieldValByName("updateBy", userName, metaObject);
        }
ruoyi-admin/src/main/resources/application-prod.yml
@@ -197,7 +197,7 @@
    location: /file/
    qrLocation: /file/qrCode/
    accessPath: /file/
    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
  url:
    prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
wx:
ruoyi-admin/src/main/resources/application-test.yml
@@ -190,7 +190,7 @@
    location: /file/
    qrLocation: /file/qrCode/
    accessPath: /file/
    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF
    allowExt: .jpg|.png|.gif|.jpeg|.doc|.docx|.apk|.MP4|.mp4|.pdf|.PDF|.xls|.xlsx|.rar|.zip|.rar
  url:
#    prefix: http://localhost:${server.port}${server.servlet.context-path}
    prefix: https://xzgt.test.591taxi.cn:${server.port}${server.servlet.context-path}
ruoyi-system/src/main/java/com/ruoyi/system/dto/TQaTestItemReportDTO.java
@@ -15,4 +15,7 @@
    @ApiModelProperty(value = "检测报告文件")
    private List<TQaReportFile> qaReportFiles;
    @ApiModelProperty(value = "项目组id")
    private String teamId;
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TExperimentDispatchMapper.java
@@ -26,4 +26,12 @@
     * @return
     */
    List<TExperimentDispatchVO> pageList(@Param("query") TExperimentDispatchQuery query, @Param("pageInfo")PageInfo<TExperimentDispatchVO> pageInfo);
    /**
     * 查询化验师的通过签字的实验调度
     * @param query
     * @param pageInfo
     * @return
     */
    List<TExperimentDispatch> chemistSignList(@Param("query")TExperimentDispatchQuery query, @Param("pageInfo")PageInfo<TExperimentDispatch> pageInfo);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TQaTestItemReportMapper.java
@@ -33,4 +33,12 @@
     * @return
     */
    List<TQaTestItemReportVO> pageList(@Param("query")TQaTestItemReportQuery query, @Param("pageInfo")PageInfo<TQaTestItemReportVO> pageInfo);
    /**
     * 获取列表
     * @param itemId
     * @return
     */
    List<TQaTestItemReportVO> getListByItemId(@Param("itemId")String itemId);
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TExperimentDispatchParticipants.java
@@ -12,6 +12,7 @@
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * <p>
@@ -64,4 +65,9 @@
    @ApiModelProperty(value = "用户头像")
    @TableField(exist = false)
    private String avatar;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(exist = false)
    private Date createTime;
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TQaTestItemReport.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.model;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
@@ -8,7 +11,6 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
@@ -71,5 +73,4 @@
    @ApiModelProperty(value = "状态  -1=草稿箱 1=待审核 2=已通过 3=已驳回 4=已撤销")
    @TableField("status")
    private Integer status;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentDispatchQuery.java
@@ -17,8 +17,14 @@
    @ApiModelProperty(value = "实验编号")
    private String experimentCode;
    @ApiModelProperty(value = "实验名称")
    private String experimentName;
    @ApiModelProperty(value = "状态 -1=草稿箱 1=待确认 2=已确认 3=已封存")
    private Integer status;
    @ApiModelProperty(value = "状态 1=待确认 2=已确认")
    private Integer otherStatus;
    @ApiModelProperty(value = "用户id 前端忽略")
    private Long userId;
@@ -26,4 +32,9 @@
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
    @ApiModelProperty(value = "实验id 实验员和化验师使用 前端忽略")
    private List<String> dispatchIdList;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentResultReportQuery.java
@@ -25,5 +25,5 @@
    @ApiModelProperty(value = "实验调度id集合 前端忽略")
    private List<String> dispatchIds;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TExperimentSchemeQuery.java
@@ -25,4 +25,6 @@
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TInspectionReportQuery.java
@@ -1,10 +1,11 @@
package com.ruoyi.system.query;
import com.baomidou.mybatisplus.annotation.TableField;
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")
@@ -23,4 +24,11 @@
    private String createBy;
    @ApiModelProperty(value = "状态 -1=草稿箱 1=待提交 2=已提交")
    private Integer status;
    @ApiModelProperty(value = "用户id 前端忽略")
    private Long userId;
    @ApiModelProperty(value = "用户类型 前端忽略")
    private Integer roleType;
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TProjectProposalQuery.java
@@ -21,6 +21,9 @@
    private String createBy;
    @ApiModelProperty(value = "审批状态  -1=草稿箱 1=审批中 2=已通过 3=已驳回 4=已撤销 5=已封存")
    private Integer auditStatus;
    @ApiModelProperty(value = "项目组id集合 前端忽略")
    private List<String> teamIds;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TResultWorkEvaluateQuery.java
@@ -13,6 +13,8 @@
    @ApiModelProperty(value = "项目组名称")
    private String teamName;
    @ApiModelProperty(value = "所属项目课题")
    private String projectName;
    @ApiModelProperty(value = "实验编号")
    private String experimentCode;
ruoyi-system/src/main/java/com/ruoyi/system/query/TSamplingRecordQuery.java
@@ -34,4 +34,6 @@
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetOriginalQuery.java
@@ -6,6 +6,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "原始检测项查询对象query")
public class TTestMethodConfirmSheetOriginalQuery extends TimeRangeQueryBody {
@@ -22,5 +24,11 @@
    @ApiModelProperty(value = "状态 -1=草稿箱 1=未填写 2=已填写")
    @TableField("status")
    private Integer status;
    @ApiModelProperty(value = "用户id 前端忽略")
    private Long userId;
    @ApiModelProperty(value = "用户类型 前端忽略")
    private Integer roleType;
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/TTestMethodConfirmSheetQuery.java
@@ -28,4 +28,6 @@
    @ApiModelProperty(value = "实验id 前端忽略")
    private List<String> dispatchIds;
    private Integer roleType;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TExperimentDispatchService.java
@@ -22,4 +22,11 @@
     * @return
     */
    PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query);
    /**
     * 查询化验师的通过签字的实验调度
     * @param query
     * @return
     */
    PageInfo<TExperimentDispatch> chemistSignList(TExperimentDispatchQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TQaTestItemReportService.java
@@ -31,4 +31,11 @@
     * @return
     */
    PageInfo<TQaTestItemReportVO> pageList(TQaTestItemReportQuery query);
    /**
     * 获取检测项报告列表
     * @param itemId
     * @return
     */
    List<TQaTestItemReportVO> getListByItemId(String itemId);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentDispatchServiceImpl.java
@@ -7,18 +7,19 @@
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.TExperimentDispatchMapper;
import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper;
import com.ruoyi.system.mapper.TProjectProposalMapper;
import com.ruoyi.system.model.TExperimentDispatch;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
import com.ruoyi.system.model.TProjectTeamStaff;
import com.ruoyi.system.model.TProjectProposal;
import com.ruoyi.system.query.TExperimentDispatchQuery;
import com.ruoyi.system.service.TExperimentDispatchService;
import com.ruoyi.system.vo.TExperimentDispatchVO;
import com.ruoyi.system.vo.TProjectTeamVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -35,11 +36,25 @@
    @Autowired
    private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
    @Autowired
    private TProjectProposalMapper projectProposalMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Override
    public PageInfo<TExperimentDispatchVO> pageList(TExperimentDispatchQuery query) {
        PageInfo<TExperimentDispatchVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        // 查询自己已通过的实验调度
        if(Objects.nonNull(query.getOtherStatus())){
            List<TExperimentDispatchParticipants> experimentDispatchParticipants1 = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                    .eq(TExperimentDispatchParticipants::getUserId, query.getUserId())
                    .eq(TExperimentDispatchParticipants::getStatus, query.getOtherStatus()));
            if(!CollectionUtils.isEmpty(experimentDispatchParticipants1)){
                List<String> dispatchIdList = experimentDispatchParticipants1.stream().map(TExperimentDispatchParticipants::getDispatchId).distinct().collect(Collectors.toList());
                query.setDispatchIdList(dispatchIdList);
            }else{
                return pageInfo;
            }
        }
        List<TExperimentDispatchVO> list = this.baseMapper.pageList(query,pageInfo);
        // 查询参与人员
        List<String> ids = list.stream().map(TExperimentDispatchVO::getId).collect(Collectors.toList());
@@ -58,9 +73,48 @@
                List<TExperimentDispatchParticipants> experimentDispatchParticipants = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(tExperimentDispatchVO.getId())).collect(Collectors.toList());
                String participantsName = experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";"));
                tExperimentDispatchVO.setParticipantsName(participantsName);
                experimentDispatchParticipants.stream().filter(e->e.getUserId().equals(query.getUserId()) && e.getDispatchId().equals(tExperimentDispatchVO.getId())).findFirst().ifPresent(tExperimentDispatchParticipant -> {
                    tExperimentDispatchVO.setOtherStatus(tExperimentDispatchParticipant.getStatus());
                });
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public PageInfo<TExperimentDispatch> chemistSignList(TExperimentDispatchQuery query) {
        PageInfo<TExperimentDispatch> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TExperimentDispatch> list = this.baseMapper.chemistSignList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        // 查询参与人员
        List<String> ids = list.stream().map(TExperimentDispatch::getId).collect(Collectors.toList());
        List<String> proposalIds = list.stream().map(TExperimentDispatch::getProposalId).collect(Collectors.toList());
        List<TProjectProposal> projectProposals = projectProposalMapper.selectList(Wrappers.lambdaQuery(TProjectProposal.class).in(TProjectProposal::getId, proposalIds));
        if(!CollectionUtils.isEmpty(ids)){
            List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                    .in(TExperimentDispatchParticipants::getDispatchId, ids));
            List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
            tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> {
                SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null);
                if(sysUser != null){
                    tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
                }
            });
            list.forEach(experimentDispatch -> {
                projectProposals.stream().filter(projectProposal -> projectProposal.getId().equals(experimentDispatch.getProposalId())).findFirst().ifPresent(projectProposal -> {
                    experimentDispatch.setProjectName(projectProposal.getProjectName());
                });
                List<TExperimentDispatchParticipants> experimentDispatchParticipantsList = tExperimentDispatchParticipants.stream().filter(tExperimentDispatchParticipant -> tExperimentDispatchParticipant.getDispatchId().equals(experimentDispatch.getId())).collect(Collectors.toList());
                String participantsName = experimentDispatchParticipantsList.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(";"));
                experimentDispatch.setParticipantsName(participantsName);
            });
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TExperimentResultReportServiceImpl.java
@@ -117,6 +117,68 @@
    public PageInfo<TExperimentResultReportVO> evaluatePageList(TExperimentResultReportQuery query) {
        PageInfo<TExperimentResultReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TExperimentResultReportVO> list = this.baseMapper.evaluatePageList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<String> dispatchIds = list.stream().map(TExperimentResultReportVO::getDispatchId).distinct().collect(Collectors.toList());
        // 查询参与人员
        List<TExperimentDispatchParticipants> tExperimentDispatchParticipants = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds));
        // 设置参与人员名称
        List<Long> userIds = tExperimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
        tExperimentDispatchParticipants.forEach(tExperimentDispatchParticipant -> {
            SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tExperimentDispatchParticipant.getUserId())).findFirst().orElse(null);
            if(sysUser != null){
                tExperimentDispatchParticipant.setNickName(sysUser.getNickName());
                tExperimentDispatchParticipant.setAvatar(sysUser.getAvatar());
            }
        });
        List<String> ids = list.stream().map(TExperimentResultReportVO::getId).distinct().collect(Collectors.toList());
        // 查询结果汇报评价
        List<TResultWorkEvaluate> resultWorkEvaluates = resultWorkEvaluateMapper.selectList(Wrappers.lambdaQuery(TResultWorkEvaluate.class)
                .in(TResultWorkEvaluate::getResultReportId, ids));
        for (TExperimentResultReportVO experimentResultReportVO : list) {
            experimentResultReportVO.setExperimentDispatchParticipants(tExperimentDispatchParticipants.stream().filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())).collect(Collectors.toList()));
            experimentResultReportVO.setResultWorkEvaluates(resultWorkEvaluates.stream().filter(evaluate -> evaluate.getResultReportId().equals(experimentResultReportVO.getId())).collect(Collectors.toList()));
            // 设置工艺工程师名称
            TExperimentDispatchParticipants dispatchParticipants = tExperimentDispatchParticipants.stream()
                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
                            && participants.getRoleType().equals(3)).findFirst().orElse(null);
            if(dispatchParticipants != null){
                experimentResultReportVO.setProcessEngineerName(dispatchParticipants.getNickName());
            }
            // 设置化验师名称
            List<TExperimentDispatchParticipants> laboratoryChemist = tExperimentDispatchParticipants.stream()
                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
                            && participants.getRoleType().equals(4)).collect(Collectors.toList());
            List<TResultWorkEvaluate> chemistEvaluates = resultWorkEvaluates.stream()
                    .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId())
                            && workEvaluate.getEvaluateType().equals(2)).collect(Collectors.toList());
            if(laboratoryChemist.size() == chemistEvaluates.size()){
                experimentResultReportVO.setLaboratoryChemistEvaluate(1);
            }
            if(!CollectionUtils.isEmpty(laboratoryChemist)){
                String laboratoryChemistName = laboratoryChemist.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(","));
                experimentResultReportVO.setLaboratoryChemistName(laboratoryChemistName);
            }
            // 设置实验员名称
            List<TExperimentDispatchParticipants> experimenter = tExperimentDispatchParticipants.stream()
                    .filter(participants -> participants.getDispatchId().equals(experimentResultReportVO.getDispatchId())
                            && participants.getRoleType().equals(5)).collect(Collectors.toList());
            List<TResultWorkEvaluate> experimenterEvaluates = resultWorkEvaluates.stream()
                    .filter(workEvaluate -> workEvaluate.getDispatchId().equals(experimentResultReportVO.getDispatchId())
                            && workEvaluate.getEvaluateType().equals(3)).collect(Collectors.toList());
            if(experimenter.size() == experimenterEvaluates.size()){
                experimentResultReportVO.setExperimenterEvaluate(1);
            }
            if(!CollectionUtils.isEmpty(experimenter)){
                String experimenterName = experimenter.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(","));
                experimentResultReportVO.setExperimenterName(experimenterName);
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFeasibilityStudyReportServiceImpl.java
@@ -1,17 +1,24 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.TFeasibilityStudyReportMapper;
import com.ruoyi.system.model.TFeasibilityStudyReport;
import com.ruoyi.system.query.TFeasibilityStudyReportQuery;
import com.ruoyi.system.service.TFeasibilityStudyReportService;
import com.ruoyi.system.vo.TFeasibilityStudyReportVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -24,10 +31,53 @@
@Service
public class TFeasibilityStudyReportServiceImpl extends ServiceImpl<TFeasibilityStudyReportMapper, TFeasibilityStudyReport> implements TFeasibilityStudyReportService {
    @Autowired
    private SysUserMapper sysUserMapper;
    @Override
    public PageInfo<TFeasibilityStudyReportVO> pageList(TFeasibilityStudyReportQuery query) {
        PageInfo<TFeasibilityStudyReportVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TFeasibilityStudyReportVO> list = this.baseMapper.pageList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<Long> userIds = list.stream().map(TFeasibilityStudyReportVO::getEvaluatePersonId).collect(Collectors.toList());
        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
        // 查询项目组
        List<String> teamIds = list.stream().map(TFeasibilityStudyReportVO::getTeamId).collect(Collectors.toList());
        List<TFeasibilityStudyReport> feasibilityStudyReports = this.list(Wrappers.lambdaQuery(TFeasibilityStudyReport.class)
                .in(TFeasibilityStudyReport::getTeamId, teamIds));
        for (TFeasibilityStudyReportVO tFeasibilityStudyReportVO : list) {
            List<TFeasibilityStudyReport> feasibilityStudyReportList = feasibilityStudyReports.stream()
                    .filter(feasibilityStudyReport -> feasibilityStudyReport.getTeamId().equals(tFeasibilityStudyReportVO.getTeamId())).collect(Collectors.toList());
            if (CollectionUtils.isEmpty(feasibilityStudyReportList)) {
                tFeasibilityStudyReportVO.setTotalScore(0);
                continue;
            }
            // 将feasibilityStudyReportList列表中所有的分数进行累加
            List<String> scoreList = feasibilityStudyReportList.stream().filter(e -> StringUtils.isNotBlank(e.getEvaluateScore()))
                    .map(TFeasibilityStudyReport::getEvaluateScore).collect(Collectors.toList());
            // 使用 Stream 累加分数
            int totalSum = 0;
            for (String scoreStr : scoreList) {
                int sum = Arrays.stream(scoreStr.split(","))
                        .mapToInt(Integer::parseInt).sum();
                totalSum+=sum;
            }
            tFeasibilityStudyReportVO.setTotalScore(totalSum);
            sysUsers.stream()
                    .filter(sysUser -> sysUser.getUserId().equals(tFeasibilityStudyReportVO.getEvaluatePersonId()))
                    .findFirst()
                    .ifPresent(sysUser -> tFeasibilityStudyReportVO.setEvaluatePersonName(sysUser.getNickName()));
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TQaTestItemReportServiceImpl.java
@@ -56,4 +56,9 @@
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public List<TQaTestItemReportVO> getListByItemId(String itemId) {
        return this.baseMapper.getListByItemId(itemId);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSamplingRecordServiceImpl.java
@@ -3,8 +3,12 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.TExperimentDispatchParticipantsMapper;
import com.ruoyi.system.mapper.TSamplingRecordMapper;
import com.ruoyi.system.mapper.TSamplingRecordOperationMapper;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
import com.ruoyi.system.model.TSamplingRecord;
import com.ruoyi.system.model.TSamplingRecordOperation;
import com.ruoyi.system.query.TSamplingRecordQuery;
@@ -30,6 +34,10 @@
    @Autowired
    private TSamplingRecordOperationMapper samplingRecordOperationMapper;
    @Autowired
    private TExperimentDispatchParticipantsMapper experimentDispatchParticipantsMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Override
    public PageInfo<TSamplingRecordVO> pageList(TSamplingRecordQuery query) {
@@ -49,6 +57,26 @@
            item.setReceivedCount(recordOperationList.stream().filter(recordOperation -> recordOperation.getSamplingId().equals(item.getId()) && recordOperation.getStatus() == 3).count());
        });
        // 查询实验调度参与实验员
        List<String> dispatchIds = list.stream().map(TSamplingRecordVO::getDispatchId).collect(Collectors.toList());
        List<TExperimentDispatchParticipants> teamStaffs = experimentDispatchParticipantsMapper.selectList(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                .in(TExperimentDispatchParticipants::getDispatchId, dispatchIds)
                .eq(TExperimentDispatchParticipants::getRoleType, 5));
        List<Long> userIds = teamStaffs.stream().map(TExperimentDispatchParticipants::getUserId).collect(Collectors.toList());
        List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
        teamStaffs.stream().forEach(teamStaff -> {
            sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(teamStaff.getUserId())).findFirst().ifPresent(sysUser -> {
                teamStaff.setNickName(sysUser.getNickName());
            });
        });
        for (TSamplingRecordVO tSamplingRecordVO : list) {
            List<TExperimentDispatchParticipants> experimentDispatchParticipants = teamStaffs.stream().filter(teamStaff -> teamStaff.getDispatchId().equals(tSamplingRecordVO.getDispatchId())).collect(Collectors.toList());
            if(!CollectionUtils.isEmpty(experimentDispatchParticipants)){
                tSamplingRecordVO.setTesterNames(experimentDispatchParticipants.stream().map(TExperimentDispatchParticipants::getNickName).collect(Collectors.joining(",")));
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTestMethodConfirmSheetOriginalServiceImpl.java
@@ -3,13 +3,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.mapper.TTestMethodConfirmSheetOriginalMapper;
import com.ruoyi.system.mapper.TTestMethodConfirmSheetTermMapper;
import com.ruoyi.system.model.TTestMethodConfirmSheetOriginal;
import com.ruoyi.system.model.TTestMethodConfirmSheetTerm;
import com.ruoyi.system.query.TTestMethodConfirmSheetOriginalQuery;
import com.ruoyi.system.service.TTestMethodConfirmSheetOriginalService;
import com.ruoyi.system.service.TTestMethodConfirmSheetTermService;
import com.ruoyi.system.vo.TExperimentResultReportVO;
import com.ruoyi.system.vo.TTestMethodConfirmSheetOriginalVO;
import org.springframework.stereotype.Service;
@@ -26,8 +22,11 @@
@Service
public class TTestMethodConfirmSheetOriginalServiceImpl extends ServiceImpl<TTestMethodConfirmSheetOriginalMapper, TTestMethodConfirmSheetOriginal> implements TTestMethodConfirmSheetOriginalService {
    @Override
    public PageInfo<TTestMethodConfirmSheetOriginalVO> pageList(TTestMethodConfirmSheetOriginalQuery query) {
        //
        PageInfo<TTestMethodConfirmSheetOriginalVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TTestMethodConfirmSheetOriginalVO> list = this.baseMapper.pageList(query,pageInfo);
        pageInfo.setRecords(list);
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterOtherTaskServiceImpl.java
@@ -6,11 +6,12 @@
import com.ruoyi.system.model.TTesterOtherTask;
import com.ruoyi.system.query.TTesterOtherTaskQuery;
import com.ruoyi.system.service.TTesterOtherTaskService;
import com.ruoyi.system.vo.TQaProduceReportVO;
import com.ruoyi.system.vo.TTesterOtherTaskVO;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -27,6 +28,18 @@
    public PageInfo<TTesterOtherTaskVO> pageList(TTesterOtherTaskQuery query) {
        PageInfo<TTesterOtherTaskVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TTesterOtherTaskVO> list = this.baseMapper.pageList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        // 统计总分数
        List<TTesterOtherTask> teamList = this.list();
        for (TTesterOtherTaskVO tTesterOtherTaskVO : list) {
            List<TTesterOtherTask> taskList = teamList.stream().filter(item -> item.getTeamId().equals(tTesterOtherTaskVO.getTeamId())).collect(Collectors.toList());
            if(CollectionUtils.isEmpty(taskList)){
                tTesterOtherTaskVO.setTotalScore(0);
            }
            tTesterOtherTaskVO.setTotalScore(taskList.stream().mapToInt(TTesterOtherTask::getEvaluateScore).sum());
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTesterWorkEvaluateServiceImpl.java
@@ -19,6 +19,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -228,6 +229,20 @@
    public PageInfo<TResultWorkEvaluateVO> chemistEvaluateList(TResultWorkEvaluateQuery query) {
        PageInfo<TResultWorkEvaluateVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TResultWorkEvaluateVO> list = this.baseMapper.chemistEvaluateList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<Long> userIds = list.stream().map(TResultWorkEvaluateVO::getUserId).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(userIds)){
            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
            list.forEach(tResultWorkEvaluateVO -> {
                SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tResultWorkEvaluateVO.getUserId())).findFirst().orElse(null);
                if(sysUser != null){
                    tResultWorkEvaluateVO.setChemistName(sysUser.getNickName());
                }
            });
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
@@ -235,6 +250,21 @@
    public PageInfo<TResultWorkEvaluateVO> testerEvaluateList(TResultWorkEvaluateQuery query) {
        PageInfo<TResultWorkEvaluateVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TResultWorkEvaluateVO> list = this.baseMapper.testerEvaluateList(query,pageInfo);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        List<Long> userIds = list.stream().map(TResultWorkEvaluateVO::getUserId).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(userIds)){
            List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
            list.forEach(tResultWorkEvaluateVO -> {
                SysUser sysUser = sysUsers.stream().filter(user -> user.getUserId().equals(tResultWorkEvaluateVO.getUserId())).findFirst().orElse(null);
                if(sysUser != null){
                    tResultWorkEvaluateVO.setTesterName(sysUser.getNickName());
                }
            });
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
@@ -253,9 +283,12 @@
            if(!CollectionUtils.isEmpty(userIds)){
                List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
                for (ResultEvaluateChemistTesterVO resultEvaluateChemistTesterVO : list) {
                    sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(resultEvaluateChemistTesterVO.getParticipantsId())).findFirst().ifPresent(sysUser -> {
                        resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
                    });
                    TExperimentDispatchParticipants dispatchParticipants = experimentDispatchParticipants.stream().filter(experimentDispatchParticipant -> experimentDispatchParticipant.getDispatchId().equals(resultEvaluateChemistTesterVO.getDispatchId())).findFirst().orElse(null);
                    if(Objects.nonNull(dispatchParticipants)){
                        sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(dispatchParticipants.getUserId())).findFirst().ifPresent(sysUser -> {
                            resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
                        });
                    }
                }
            }
        }
@@ -277,9 +310,12 @@
            if(!CollectionUtils.isEmpty(userIds)){
                List<SysUser> sysUsers = sysUserMapper.selectUserByIds(userIds);
                for (ResultEvaluateChemistTesterVO resultEvaluateChemistTesterVO : list) {
                    sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(resultEvaluateChemistTesterVO.getParticipantsId())).findFirst().ifPresent(sysUser -> {
                        resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
                    });
                    TExperimentDispatchParticipants dispatchParticipants = experimentDispatchParticipants.stream().filter(experimentDispatchParticipant -> experimentDispatchParticipant.getDispatchId().equals(resultEvaluateChemistTesterVO.getDispatchId())).findFirst().orElse(null);
                    if(Objects.nonNull(dispatchParticipants)){
                        sysUsers.stream().filter(sysUser -> sysUser.getUserId().equals(dispatchParticipants.getUserId())).findFirst().ifPresent(sysUser -> {
                            resultEvaluateChemistTesterVO.setProcessEngineerName(sysUser.getNickName());
                        });
                    }
                }
            }
        }
ruoyi-system/src/main/java/com/ruoyi/system/vo/ResultEvaluateChemistTesterVO.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -48,5 +49,7 @@
    @ApiModelProperty(value = "评定时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime evaluateTime;
    @ApiModelProperty(value = "评定分数 json")
    @TableField("result_evaluate_json")
    private String resultEvaluateJson;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TClinicalTrialPointsVO.java
@@ -18,5 +18,6 @@
    @ApiModelProperty(value = "总分")
    private Double totalScore;
    @ApiModelProperty(value = "项目组名称")
    private String teamName;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TExperimentDispatchVO.java
@@ -1,6 +1,5 @@
package com.ruoyi.system.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.system.model.TExperimentDispatch;
import com.ruoyi.system.model.TExperimentDispatchGroup;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
@@ -28,5 +27,7 @@
    private List<TExperimentDispatchParticipants> experimentDispatchParticipants;
    @ApiModelProperty(value = "组别列表")
    private List<TExperimentDispatchTask> experimentDispatchTasks;
    @ApiModelProperty(value = "当前实验员,和化验师是否已确认状态")
    private Integer otherStatus;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TFeasibilityStudyReportVO.java
@@ -28,6 +28,9 @@
    @ApiModelProperty(value = "评定人员名称")
    private String evaluatePersonName;
    @ApiModelProperty(value = "审核人员名称")
    private String auditPersonName;
    @ApiModelProperty(value = "报告文件")
    private List<TFeasibilityReportFile> feasibilityReportFiles;
ruoyi-system/src/main/java/com/ruoyi/system/vo/TQaTestItemVO.java
@@ -17,6 +17,9 @@
    @ApiModelProperty(value = "项目组名称")
    private String teamName;
    @ApiModelProperty(value = "评价人名称")
    private String evaluatePersonName;
    @ApiModelProperty(value = "检测报告列表")
    private List<TQaTestItemReportVO> qaTestItemReportList;
ruoyi-system/src/main/java/com/ruoyi/system/vo/TResultWorkEvaluateVO.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.model.TExperimentDispatch;
import com.ruoyi.system.model.TResultWorkEvaluate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -37,5 +38,9 @@
    private String chemistName;
    @ApiModelProperty(value = "实验员名称")
    private String testerName;
    @ApiModelProperty(value = "项目课题方案")
    private String projectName;
    @ApiModelProperty(value = "实验调度对象")
    private TExperimentDispatch experimentDispatch;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TSamplingRecordVO.java
@@ -36,4 +36,6 @@
    @ApiModelProperty(value = "已接收数量")
    private Long receivedCount;
    @ApiModelProperty(value = "实验员名称")
    private String testerNames;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTestMethodConfirmSheetVO.java
@@ -1,11 +1,13 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.model.TTestMethodConfirmSheet;
import com.ruoyi.system.model.TTestMethodConfirmSheetTerm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@@ -27,5 +29,21 @@
    @ApiModelProperty(value = "审核人姓名")
    private String auditPersonName;
    @ApiModelProperty(value = "通知时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime experimentDate;
    @ApiModelProperty(value = "实验开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime experimentStartTime;
    @ApiModelProperty(value = "实验结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime experimentEndTime;
    @ApiModelProperty(value = "参与人员名称拼接")
    private String participantsName;
    @ApiModelProperty(value = "状态")
    private Integer status;
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/TTesterOtherTaskVO.java
@@ -18,4 +18,7 @@
    @ApiModelProperty(value = "项目组名称")
    private String teamName;
    @ApiModelProperty(value = "总积分")
    private Integer totalScore;
}
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -157,7 +157,8 @@
        select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
    </select>
    <select id="selectUserByIds" resultType="com.ruoyi.common.core.domain.entity.SysUser">
        select user_id AS userId, dept_id AS deptId, user_name AS userName, nick_name AS nickName, email AS email, avatar AS avatar, phonenumber AS phonenumber
        select user_id AS userId, dept_id AS deptId, user_name AS userName, nick_name AS nickName,
               email AS email, avatar AS avatar, phonenumber AS phonenumber,create_time AS createTime
        from sys_user where user_id in
        <foreach collection="userIds" separator="," item="userId" open="(" close=")">
            #{userId}
ruoyi-system/src/main/resources/mapper/system/TExperimentDispatchMapper.xml
@@ -41,6 +41,48 @@
            <if test="query.status !=null">
                and ted.status = #{query.status}
            </if>
            <if test="query.otherStatus !=null">
                and ted.status = #{query.otherStatus}
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND ted.status != 3
            </if>
            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
                and ted.id in
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
                    #{item}
                </foreach>
            </if>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND ted.create_time BETWEEN #{query.startTime} AND #{query.endTime}
            </if>
            <if test="query.status == null">
                and ted.status != -1
            </if>
            AND ted.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
        ORDER BY ted.create_time DESC
    </select>
    <select id="chemistSignList" resultType="com.ruoyi.system.model.TExperimentDispatch">
        SELECT
        ted.id, ted.proposal_id, ted.experiment_date, ted.experiment_name, ted.experiment_code, ted.experiment_start_time,
        ted.experiment_end_time, ted.key_nodes, ted.status, ted.create_time, ted.update_time, ted.create_by, ted.update_by,
        ted.disabled,tpp.project_name as projectName
        from t_experiment_dispatch ted
        left join t_project_proposal tpp on ted.proposal_id = tpp.id
        <where>
            <if test="query.projectName != null and query.projectName != ''">
                and tpp.project_name like concat('%',#{query.projectName},'%')
            </if>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
            </if>
            <if test="query.experimentName != null and query.experimentName != ''">
                and ted.experiment_name like concat('%',#{query.experimentName},'%')
            </if>
            <if test="query.status !=null">
                and ted.status = #{query.status}
            </if>
            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
                and ted.id in
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
ruoyi-system/src/main/resources/mapper/system/TExperimentResultReportMapper.xml
@@ -48,9 +48,6 @@
            <if test="query.status != null">
                and terr.status = #{query.status}
            </if>
            <if test="query.status == null">
                and terr.status != -1
            </if>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND terr.create_time BETWEEN #{query.startTime} AND #{query.endTime}
            </if>
@@ -60,6 +57,12 @@
                    #{item}
                </foreach>
            </if>
            <if test="query.status == null">
                and terr.status != -1
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND terr.status != 4
            </if>
            AND terr.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
        ORDER BY terr.create_time DESC
ruoyi-system/src/main/resources/mapper/system/TExperimentSchemeMapper.xml
@@ -50,7 +50,7 @@
                and tpp.project_name like concat('%', #{query.projectName}, '%')
            </if>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and tes.experiment_code like concat('%', #{query.experimentCode}, '%')
                and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
            </if>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND tes.create_time BETWEEN #{query.startTime} AND #{query.endTime}
@@ -60,6 +60,9 @@
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
                    #{item}
                </foreach>
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND tes.status != 5
            </if>
            <if test="query.status == null">
                and tes.status != -1
@@ -85,7 +88,7 @@
                and tpp.project_name like concat('%', #{query.projectName}, '%')
            </if>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and tes.experiment_code like concat('%', #{query.experimentCode}, '%')
                and ted.experiment_code like concat('%', #{query.experimentCode}, '%')
            </if>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND tes.create_time BETWEEN #{query.startTime} AND #{query.endTime}
ruoyi-system/src/main/resources/mapper/system/TInspectionReportMapper.xml
@@ -43,6 +43,15 @@
            <if test="query.status != null">
                and tir.status = #{query.status}
            </if>
            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
                and tir.dispatch_id in
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
                    #{item}
                </foreach>
            </if>
            <if test="query.roleType != null and query.roleType == 4">
                and tir.status = 1
            </if>
            <if test="query.status == null">
                and tir.status != -1
            </if>
ruoyi-system/src/main/resources/mapper/system/TProjectProposalMapper.xml
@@ -59,6 +59,9 @@
            <if test="query.auditStatus != null">
                AND tpp.audit_status = #{query.auditStatus}
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND tpp.audit_status != 5
            </if>
             <if test="query.teamIds != null and query.teamIds.size() > 0">
                AND tpp.team_id IN
                <foreach item="teamId" collection="query.teamIds" separator="," open="(" close=")" index="">
ruoyi-system/src/main/resources/mapper/system/TQaTestItemReportMapper.xml
@@ -70,5 +70,14 @@
        </where>
        ORDER BY tqtir.create_time DESC
    </select>
    <select id="getListByItemId" resultType="com.ruoyi.system.vo.TQaTestItemReportVO">
        select
        <include refid="Base_Column_List" />
        from t_qa_test_item_report
        where item_id = #{itemId}
        and status in (1,2,3)
        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        order by create_time desc
    </select>
</mapper>
ruoyi-system/src/main/resources/mapper/system/TResultWorkEvaluateMapper.xml
@@ -69,6 +69,9 @@
            <if test="query.teamName != null and query.teamName != ''">
                and tpp.team_name like concat('%',#{query.teamName},'%')
            </if>
            <if test="query.projectName != null and query.projectName != ''">
                and tpp.project_name like concat('%',#{query.projectName},'%')
            </if>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
            </if>
@@ -81,7 +84,7 @@
            <if test="query.status != null">
                AND trwe.status = #{query.status}
            </if>
            <if test="query.teamIds != null and query.teamIds > 0">
            <if test="query.teamIds != null and query.teamIds.size() > 0">
                AND trwe.team_id in
                <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
                    #{id}
@@ -117,7 +120,7 @@
            <if test="query.status != null">
                AND trwe.status = #{query.status}
            </if>
            <if test="query.teamIds != null and query.teamIds > 0">
            <if test="query.teamIds != null and query.teamIds.size() > 0">
                AND trwe.team_id in
                <foreach collection="query.teamIds" item="id" open="(" separator="," close=")">
                    #{id}
@@ -132,12 +135,12 @@
        select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
        tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
        ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryChemistName,
        tedp.dispatch_id AS dispatchId
        tedp.dispatch_id AS dispatchId,trwe.result_evaluate_json AS resultEvaluateJson
        from t_experiment_dispatch_participants tedp
        left join t_experiment_dispatch ted on ted.id = tedp.dispatch_id
        left join t_result_work_evaluate trwe on tedp.id = trwe.dispatch_id and trwe.evaluate_type = 2
        left join t_result_work_evaluate trwe on ted.id = trwe.dispatch_id and trwe.evaluate_type = 2
        left join t_project_proposal tpp on ted.proposal_id = tpp.id
        left join sys_user su on tedp.user_id = su.id
        left join sys_user su on tedp.user_id = su.user_id
        <where>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
@@ -165,12 +168,12 @@
        select trwe.evaluate_time,CASE WHEN trwe.id IS NOT NULL THEN 1 ELSE 0 END AS isEvaluate,trwe.id,
        tedp.id AS participantsId,tpp.project_name AS projectName,tpp.project_stage AS projectStage,
        ted.experiment_code AS experimentCode,ted.experiment_name AS experimentName,su.nick_name AS laboratoryTesterName,
        tedp.dispatch_id AS dispatchId
        tedp.dispatch_id AS dispatchId,trwe.result_evaluate_json AS resultEvaluateJson
        from t_experiment_dispatch_participants tedp
        left join t_experiment_dispatch ted on ted.id = tedp.dispatch_id
        left join t_result_work_evaluate trwe on tedp.id = trwe.dispatch_id and trwe.evaluate_type = 3
        left join t_result_work_evaluate trwe on ted.id = trwe.dispatch_id and trwe.evaluate_type = 3
        left join t_project_proposal tpp on ted.proposal_id = tpp.id
        left join sys_user su on tedp.user_id = su.id
        left join sys_user su on tedp.user_id = su.user_id
        <where>
            <if test="query.experimentCode != null and query.experimentCode != ''">
                and ted.experiment_code like concat('%',#{query.experimentCode},'%')
ruoyi-system/src/main/resources/mapper/system/TSamplingRecordMapper.xml
@@ -53,6 +53,9 @@
                    #{item}
                </foreach>
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND tsr.status != 3
            </if>
            <if test="query.status == null">
                and tsr.status != -1
            </if>
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetMapper.xml
@@ -44,6 +44,9 @@
            <if test="query.auditStatus != null">
                and tmcs.audit_status = #{query.auditStatus}
            </if>
            <if test="query.roleType != null and (query.roleType == 3 or query.roleType == 4 or query.roleType == 5)">
                AND tmcs.audit_status != 5
            </if>
            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
                and tmcs.dispatch_id in
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
ruoyi-system/src/main/resources/mapper/system/TTestMethodConfirmSheetOriginalMapper.xml
@@ -47,6 +47,12 @@
            <if test="query.status != null">
                and ttmcso.status = #{query.status}
            </if>
            <if test="query.dispatchIds != null and query.dispatchIds.size() > 0">
                and ttmcs.dispatch_id in
                <foreach item="item" collection="query.dispatchIds" separator="," close=")" index="index" open="(">
                    #{item}
                </foreach>
            </if>
            <if test="query.status == null">
                and ttmcso.status != -1
            </if>