wenminjie
2026-07-14 bd6b08e65fe29994c6c6b5430639022f2a4f5e5c
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
@@ -13,6 +13,7 @@
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.*;
import com.ruoyi.system.mapper.TProjectTeamMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TBreedingAndPreservationQuery;
import com.ruoyi.system.query.TStrainValidationDataQuery;
@@ -30,6 +31,7 @@
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -75,6 +77,8 @@
                return R.ok(new PageInfo<>());
            }
        }else if (!sysUser.getRoleType().equals("1")){
            if (query.getProjectIds() == null || query.getProjectIds().isEmpty()) {
                if (query.getProjectIds() == null || query.getProjectIds().isEmpty()) {
            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
            if (!allProjectIds.isEmpty()){
@@ -87,6 +91,8 @@
                query.setProjectIds(projectIds);
            }else {
                return R.ok(new PageInfo<>());
                    }
                }
            }
        }
        return R.ok(strainValidationDataService.pageList(query));
@@ -103,6 +109,8 @@
        if (StringUtils.hasLength(dto.getHandleSignature())){
            dto.setHandleTime(LocalDateTime.now());
        }
        if (com.ruoyi.common.utils.StringUtils.isEmpty(dto.getProjectId())) {
        List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
        if (!projectIds.isEmpty()){
@@ -112,6 +120,8 @@
                    .last("limit 1").one();
            dto.setProjectId(projectTeam.getId());
        }
        }
        strainValidationDataService.save(dto);
        if (dto.getIsDraft()==0){
            dto.setStatus(1);
@@ -179,6 +189,7 @@
        strainValidationDataService.updateById(dto);
        return R.ok();
    }
    @Log(title = "菌种验证数据资料-确认验证资料", businessType = BusinessType.INSERT)
    @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class)
    @PostMapping(value = "/api/t-strain-validation-data/confirm")
@@ -190,9 +201,39 @@
        }
        dto.setStatus(2);
        strainValidationDataService.updateById(dto);
        // 先删除该 dataId 的所有数据
        LambdaQueryWrapper<TStrainValidationDataDetail> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TStrainValidationDataDetail::getDataId, dto.getId());
        strainValidationDataDetailService.remove(wrapper);
        strainValidationDataDetailService.saveBatch(list);
        return R.ok();
    }
    @Log(title = "菌种验证数据资料-存草稿", businessType = BusinessType.INSERT)
    @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class)
    @PostMapping(value = "/api/t-strain-validation-data/saveDraf")
    public R<Boolean> saveDraf(@RequestBody String param) {
        AddStrainValidationDataDetailDTO dto = JSON.parseObject(param,AddStrainValidationDataDetailDTO.class);
        List<TStrainValidationDataDetail> list = dto.getList();
        for (TStrainValidationDataDetail tStrainValidationDataDetail : list) {
            tStrainValidationDataDetail.setDataId(dto.getId());
        }
        dto.setIsDraft(1);
        strainValidationDataService.updateById(dto);
        // 先删除该 dataId 的所有数据
        LambdaQueryWrapper<TStrainValidationDataDetail> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(TStrainValidationDataDetail::getDataId, dto.getId());
        strainValidationDataDetailService.remove(wrapper);
        strainValidationDataDetailService.saveBatch(list);
        return R.ok();
    }
    @Resource
    private TProjectTeamMapper tProjectTeamMapper;
    /**
     * 查看菌种验证数据资料详情
@@ -205,6 +246,29 @@
        BeanUtils.copyProperties(strainValidationData,res);
        List<TStrainValidationDataDetail> list = strainValidationDataDetailService.lambdaQuery().eq(TStrainValidationDataDetail::getDataId, id).list();
        res.setList(list);
        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(strainValidationData.getProjectId())) {
            TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(strainValidationData.getProjectId());
            if (tProjectTeam != null) {
                List<TProjectTeamStaff> listProsd = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
                StringBuilder staffNames = new StringBuilder();
                for (TProjectTeamStaff tProjectTeamStaff : listProsd) {
                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
                    if (sysUser!=null){
                        staffNames.append(sysUser.getNickName()).append(",");
                    }
                }
                if (StringUtils.hasLength(staffNames.toString())){
                    tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
                }
                List<TProjectTeam> tProjectTeamList = new ArrayList<>();
                tProjectTeamList.add(tProjectTeam);
                res.setTProjectTeamList(tProjectTeamList);
                res.setProjectName(tProjectTeam.getTeamName());
            }
        }
        return R.ok(res);
    }
    @Log(title = "主细胞-删除菌种验证数据资料", businessType = BusinessType.DELETE)