From 082bddee7df8a05ca95f473ec2643701d41a5213 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期四, 08 十月 2026 11:09:01 +0800
Subject: [PATCH] 更新代码
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java | 141 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 128 insertions(+), 13 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
index 3da8eef..01b4191 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TStrainValidationDataController.java
+++ b/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,32 +109,53 @@
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);
@@ -131,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")
@@ -142,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;
/**
* 查看菌种验证数据资料详情
@@ -153,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)
--
Gitblit v1.7.1