From 053f6187b5f6cda1725ed63df8a8766b5976fb53 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 06 八月 2025 09:01:35 +0800
Subject: [PATCH] 菌种库所有代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java |   63 +++++++++++++++++++++++--------
 1 files changed, 47 insertions(+), 16 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
index 0233b2d..11b071c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java
@@ -30,6 +30,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -78,23 +79,28 @@
             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());
+                    .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")){
             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)
+            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<>());
             }
         }
 
@@ -115,6 +121,7 @@
         if (dto.getStatus()==1){
             return R.fail("有菌种待确认,无法提交");
         }
+
         if (dto.getStatus()==3){
             dto.setIsDraft(1);
         }
@@ -155,7 +162,8 @@
         if (dto.getStatus()!=null&&dto.getStatus()==2){
             // 新增消息
             TNotice tNotice = new TNotice();
-            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+            List<String> allProjectIds = projectTeamStaffService.lambdaQuery()
+                    .eq(TProjectTeamStaff::getTeamId,dto.getProjectId())
                     .eq(TProjectTeamStaff::getRoleType, 2)
                     .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
             if (!allProjectIds.isEmpty()){
@@ -196,6 +204,10 @@
         }else{
             dto.setIsDraft(0);
         }
+        TBreedingAndPreservation breedingAndPreservationServiceById = breedingAndPreservationService.getById(dto.getId());
+        if (breedingAndPreservationServiceById.getStatus()==1){
+            return R.fail("该记录已提交,不可编辑!");
+        }
         breedingAndPreservationService.updateById(dto);
         List<TSeparationOfCultureDishes> separationOfCultureDishesList = dto.getSeparationOfCultureDishesList();
         for (TSeparationOfCultureDishes tSeparationOfCultureDishes : separationOfCultureDishesList) {
@@ -211,35 +223,47 @@
         observationOfPetriDishesService.saveBatch(observationOfPetriDishes);
         List<TVaccinationSlope> vaccinationSlopes = dto.getVaccinationSlopes();
         for (TVaccinationSlope vaccinationSlope : vaccinationSlopes) {
+            if (dto.getStatus()==1&&!StringUtils.hasLength(vaccinationSlope.getPreserveId())){
+                return R.fail("接种斜面记录未确认,不能提交");
+            }
             vaccinationSlope.setBreedingPreserveId(dto.getId());
         }
         vaccinationSlopeService.remove(new LambdaQueryWrapper<TVaccinationSlope>().eq(TVaccinationSlope::getBreedingPreserveId, dto.getId()));
         vaccinationSlopeService.saveBatch(vaccinationSlopes);
         List<TCulturePreservation> culturePreservations = dto.getCulturePreservations();
         for (TCulturePreservation tSeparationOfCultureDishes : culturePreservations) {
+
             tSeparationOfCultureDishes.setBreedingPreserveId(dto.getId());
         }
         culturePreservationService.remove(new LambdaQueryWrapper<TCulturePreservation>().eq(TCulturePreservation::getBreedingPreserveId, dto.getId()));
+        for (TCulturePreservation culturePreservation : culturePreservations) {
+            if (dto.getStatus()==1&&!StringUtils.hasLength(culturePreservation.getPreserveId())){
+                return R.fail("菌种保藏记录未确认,不能提交");
+            }
+            culturePreservation.setBreedingPreserveId(dto.getId());
+        }
         culturePreservationService.saveBatch(culturePreservations);
         if (dto.getStatus()==2){
             // 新增消息
             TNotice tNotice = new TNotice();
             List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
-                    .eq(TProjectTeamStaff::getRoleType, 2)
+                    .eq(TProjectTeamStaff::getRoleType, 3)
                     .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            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, projectTeam.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
-            tNotice.setUserId(one1.getUserId());
+            if (!allProjectIds.isEmpty()){
+                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, projectTeam.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
+                tNotice.setUserId(one1.getUserId());
 
-            tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
-            tNotice.setStatus(1);
-            tNotice.setNoticeContent("您有【1】条【菌种选育保藏记录】等待签字入库确认;");
-            tNotice.setDataId(dto.getId());
-            tNotice.setNoticeType(6);
-            noticeService.save(tNotice);
+                tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
+                tNotice.setStatus(1);
+                tNotice.setNoticeContent("您有【1】条【菌种选育保藏记录】等待签字入库确认;");
+                tNotice.setDataId(dto.getId());
+                tNotice.setNoticeType(6);
+                noticeService.save(tNotice);
+            }
         }
         return R.ok();
     }
@@ -289,6 +313,13 @@
                 culturePreservation.setHandleName(sysUser.getNickName());
             }
         }
+        for (TVaccinationSlope vaccinationSlope : vaccinationSlopes) {
+            SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(vaccinationSlope.getHandleId()))).findFirst()
+                    .orElse(null);
+            if (sysUser!=null){
+                vaccinationSlope.setHandleName(sysUser.getNickName());
+            }
+        }
         res.setSeparationOfCultureDishesList(separationOfCultureDishesList);
         res.setObservationOfPetriDishes(observationOfPetriDishes);
         res.setVaccinationSlopes(vaccinationSlopes);

--
Gitblit v1.7.1