puzhibing
6 天以前 082bddee7df8a05ca95f473ec2643701d41a5213
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;
@@ -49,15 +51,50 @@
    private TStrainValidationDataService strainValidationDataService;
    @Resource
    private TStrainValidationDataDetailService strainValidationDataDetailService;
    @Resource
    private ISysUserService sysUserService;
    /**
     * 菌种验证数据资料分页列表
     */
    //@PreAuthorize("@ss.hasPermi('system:strainValidationData:list')")
    @ApiOperation(value = "菌种验证数据资料-获取菌种验证数据资料分页列表",response = TStrainValidationDataQuery.class)
    @PostMapping(value = "/api/t-strain-validation-data/pageList")
    public R<PageInfo<TStrainValidationDataVO>> pageList(@RequestBody String param) {
        TStrainValidationDataQuery query = JSON.parseObject(param, TStrainValidationDataQuery.class);
        SysUser sysUser = sysUserService.selectUserById(tokenService.getLoginUser().getUserId());
        if (sysUser.getRoleType().equals("2")){
            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
            if (!allProjectIds.isEmpty()){                List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
                    .list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
                if (projectIds.isEmpty()){
                    return R.ok(new PageInfo<>());
                }
                query.setProjectIds(projectIds);
            }else {
                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()){
                        List<String> projectIds = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
                                .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
                        if (projectIds.isEmpty()){
                            return R.ok(new PageInfo<>());
                        }
                        query.setProjectIds(projectIds);
                    }else {
                        return R.ok(new PageInfo<>());
                    }
                }
            }
        }
        return R.ok(strainValidationDataService.pageList(query));
    }
    /**
@@ -72,15 +109,19 @@
        if (StringUtils.hasLength(dto.getHandleSignature())){
            dto.setHandleTime(LocalDateTime.now());
        }
        List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
        if (!projectIds.isEmpty()){
            TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
                    .eq(TProjectTeam::getStatus, 1)
                    .orderByDesc(BaseModel::getCreateTime)
                    .last("limit 1").one();
            dto.setProjectId(projectTeam.getId());
        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()){
                TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, projectIds)
                        .eq(TProjectTeam::getStatus, 1)
                        .orderByDesc(BaseModel::getCreateTime)
                        .last("limit 1").one();
                dto.setProjectId(projectTeam.getId());
            }
        }
        strainValidationDataService.save(dto);
        if (dto.getIsDraft()==0){
            dto.setStatus(1);
@@ -93,6 +134,9 @@
            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                    .eq(TProjectTeamStaff::getRoleType, 3)
                    .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
            if (allProjectIds.isEmpty()){
                allProjectIds.add("0");
            }
            TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
                    .eq(TProjectTeam::getStatus, 1)
                    .orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
@@ -145,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")
@@ -156,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;
    /**
     * 查看菌种验证数据资料详情
@@ -167,10 +242,36 @@
    @GetMapping(value = "/open/t-strain-validation-data/getDetailById")
    public R<AddStrainValidationDataDetailVO> getDetailMainById(@RequestParam String id) {
        TStrainValidationData strainValidationData = strainValidationDataService.getById(id);
        if (strainValidationData == null) {
            return R.fail("菌种验证资料不存在或已删除");
        }
        AddStrainValidationDataDetailVO res = new AddStrainValidationDataDetailVO();
        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)