| | |
| | | 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; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | 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)); |
| | | } |
| | | /** |
| | |
| | | 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()){ |
| | | 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.getStatus()==2){ |
| | | if (dto.getIsDraft()==0){ |
| | | dto.setStatus(1); |
| | | }else{ |
| | | dto.setStatus(3); |
| | | } |
| | | if (dto.getStatus()==1){ |
| | | // 新增消息 |
| | | TNotice tNotice = new TNotice(); |
| | | List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) |
| | | .eq(TProjectTeamStaff::getRoleType, 2) |
| | | List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId()) |
| | | .eq(TProjectTeamStaff::getRoleType, 3) |
| | | .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList()); |
| | | TProjectTeam one = projectTeamService.lambdaQuery().in(TProjectTeam::getId, collect) |
| | | 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(); |
| | | TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery() |
| | | .eq(TProjectTeamStaff::getTeamId, one.getId()).eq(TProjectTeamStaff::getRoleType, 2).one(); |
| | | tNotice.setUserId(one1.getUserId()); |
| | | TProjectTeamStaff tProjectTeamStaff = projectTeamStaffService.lambdaQuery() |
| | | .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()).eq(TProjectTeamStaff::getRoleType, 2).one(); |
| | | tNotice.setUserId(tProjectTeamStaff.getUserId()); |
| | | |
| | | tNotice.setCommitId(tokenService.getLoginUser().getUserId()+""); |
| | | tNotice.setStatus(1); |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | StringBuilder content = new StringBuilder(); |
| | | switch (dto.getStrainType()){ |
| | | case 1: |
| | | stringBuilder.append( "【原始细胞库验证资料】"); |
| | | content.append( "【原始细胞库验证资料】"); |
| | | break; |
| | | case 2: |
| | | stringBuilder.append("【主细胞库验证资料】"); |
| | | content.append("【主细胞库验证资料】"); |
| | | break; |
| | | } |
| | | tNotice.setNoticeContent("您有【1】条"+stringBuilder+"等待确认;"); |
| | | tNotice.setNoticeContent("您有【1】条"+content+"等待确认;"); |
| | | tNotice.setDataId(dto.getId()); |
| | | tNotice.setNoticeType(6); |
| | | noticeService.save(tNotice); |
| | |
| | | strainValidationDataService.updateById(dto); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Log(title = "菌种验证数据资料-确认验证资料", businessType = BusinessType.INSERT) |
| | | @ApiOperation(value = "确认验证资料",response = AddStrainValidationDataDetailDTO.class) |
| | | @PostMapping(value = "/api/t-strain-validation-data/confirm") |
| | |
| | | } |
| | | 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; |
| | | |
| | | /** |
| | | * 查看菌种验证数据资料详情 |
| | |
| | | @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) |