puzhibing
6 天以前 2fa7f761cf80802f54f727381b282d3b264501a7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TInspectionReportController.java
@@ -8,13 +8,11 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TInspectionReportDTO;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.model.TExperimentDispatch;
import com.ruoyi.system.model.TExperimentDispatchParticipants;
import com.ruoyi.system.model.TInspectionReport;
import com.ruoyi.system.model.TProjectProposal;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TInspectionReportQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TInspectionReportVO;
@@ -26,6 +24,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -48,8 +47,11 @@
    private final TokenService tokenService;
    private final ISysUserService sysUserService;
    private final SysUserMapper sysUserMapper;
    private final TNoticeService noticeService;
    private final TProjectTeamService projectTeamService;
    private final TProjectTeamStaffService projectTeamStaffService;
    @Autowired
    public TInspectionReportController(TInspectionReportService inspectionReportService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper) {
    public TInspectionReportController(TInspectionReportService inspectionReportService, TExperimentDispatchService experimentDispatchService, TProjectProposalService projectProposalService, TExperimentDispatchParticipantsService experimentDispatchParticipantsService, TokenService tokenService, ISysUserService sysUserService, SysUserMapper sysUserMapper, TNoticeService noticeService, TProjectTeamService projectTeamService, TProjectTeamStaffService projectTeamStaffService) {
        this.inspectionReportService = inspectionReportService;
        this.experimentDispatchService = experimentDispatchService;
        this.projectProposalService = projectProposalService;
@@ -57,6 +59,9 @@
        this.tokenService = tokenService;
        this.sysUserService = sysUserService;
        this.sysUserMapper = sysUserMapper;
        this.noticeService = noticeService;
        this.projectTeamService = projectTeamService;
        this.projectTeamStaffService = projectTeamStaffService;
    }
    /**
@@ -67,6 +72,41 @@
    @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));
                if(Objects.isNull(projectTeamStaff)){
                    return R.fail("当前用户未加入项目组,无法进行操作");
                }
                // 查询项目的工艺工程师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));
    }
@@ -79,7 +119,23 @@
    @PostMapping(value = "/api/t-inspection-report/add")
    public R<Boolean> add(@RequestBody String param) {
        TInspectionReportDTO dto = JSON.parseObject(param,TInspectionReportDTO.class);
        Long userId = tokenService.getLoginUser().getUserId();
        dto.setCommitUserId(userId);
        inspectionReportService.save(dto);
        // 通过当前用户查询项目组
        TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getUserId, userId)
                .last("LIMIT 1"));
        // 查询项目组
        TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
        // MESSAGE 添加消息
        TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
                .eq(TProjectTeamStaff::getRoleType, 3)
                .last("LIMIT 1"));
        if(Objects.nonNull(teamStaff)){
            noticeService.saveNotice(teamStaff.getUserId(), "化验师已提交检验报告,请查收!", tokenService.getLoginUser().getUser().getNickName(),7);
        }
        return R.ok();
    }
@@ -92,7 +148,37 @@
    @PostMapping(value = "/api/t-inspection-report/update")
    public R<Boolean> update(@RequestBody String param) {
        TInspectionReportDTO dto = JSON.parseObject(param,TInspectionReportDTO.class);
        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
        TInspectionReport inspectionReport = inspectionReportService.getById(dto.getId());
        if (Objects.equals(roleType, 1)
                && Objects.nonNull(inspectionReport)
                && Objects.equals(inspectionReport.getStatus(), 2)) {
            return R.fail("化验师已提交的检验报告不允许编辑");
        }
        if (SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
            dto.setStatus(null);
        }
        inspectionReportService.updateById(dto);
        if(dto.getStatus() != null && dto.getStatus() != -1){
            // 通过当前用户查询项目组
            Long userId = tokenService.getLoginUser().getUserId();
            TProjectTeamStaff projectTeamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                    .eq(TProjectTeamStaff::getUserId, userId)
                    .last("LIMIT 1"));
            // 查询项目组
            TProjectTeam projectTeam = projectTeamService.getById(projectTeamStaff.getTeamId());
            // MESSAGE 添加消息
            TProjectTeamStaff teamStaff = projectTeamStaffService.getOne(Wrappers.lambdaQuery(TProjectTeamStaff.class)
                    .eq(TProjectTeamStaff::getTeamId, projectTeam.getId())
                    .eq(TProjectTeamStaff::getRoleType, 3)
                    .last("LIMIT 1"));
            if(Objects.nonNull(teamStaff)){
                noticeService.saveNotice(teamStaff.getUserId(), "化验师已提交检验报告,请查收!", tokenService.getLoginUser().getUser().getNickName(),7);
            }
        }
        return R.ok();
    }
@@ -108,9 +194,13 @@
        BeanUtils.copyProperties(inspectionReport, inspectionReportVO);
        // 查询实验调度
        TExperimentDispatch experimentDispatch = experimentDispatchService.getById(inspectionReportVO.getDispatchId());
        // 查询项目课题
        TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
        experimentDispatch.setProjectName(projectProposal.getProjectName());
        if (experimentDispatch != null) {
            // 查询项目课题
            TProjectProposal projectProposal = projectProposalService.getById(experimentDispatch.getProposalId());
            experimentDispatch.setProjectName(projectProposal.getProjectName());
            experimentDispatch.setProjectCode(projectProposal.getProjectCode());
        }
        // 查询实验调度人员
        List<TExperimentDispatchParticipants> experimentDispatchParticipants = experimentDispatchParticipantsService.list(Wrappers.lambdaQuery(TExperimentDispatchParticipants.class)
                .eq(TExperimentDispatchParticipants::getDispatchId, inspectionReportVO.getDispatchId()));