From a0e9fac251df54e5ed6159ce1fdb77d463ebdc48 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 26 六月 2025 20:05:35 +0800
Subject: [PATCH] 菌种库所有代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TBreedingAndPreservationController.java |  128 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 105 insertions(+), 23 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 dbb9ec1..0233b2d 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
@@ -4,6 +4,7 @@
 import com.ruoyi.common.core.domain.BaseModel;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.system.dto.TConfirmBreedingAndPreservationDTO;
 import com.ruoyi.system.model.*;
 
 import java.util.List;
@@ -70,12 +71,33 @@
     @ApiOperation(value = "菌种选育保藏记录-获取菌种选育保藏记录分页列表",response = TBreedingAndPreservationQuery.class)
     @PostMapping(value = "/api/t-breeding-and-preservation/pageList")
     public R<PageInfo<TBreedingAndPreservationVO>> pageList(@RequestBody String param) {
-        LoginUser loginUser = tokenService.getLoginUser();
-        if (loginUser==null){
-            return R.fail(401,"登录失效");
-        }
-        SysUser sysUser = sysUserService.selectUserById(loginUser.getUserId());
+
         TBreedingAndPreservationQuery query = JSON.parseObject(param, TBreedingAndPreservationQuery.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 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)
+                        .eq(TProjectTeam::getStatus, 1).list().stream().map(TProjectTeam::getId).collect(Collectors.toList());
+
+                if (projectIds.isEmpty()){
+                    return R.ok(new PageInfo<>());
+                }
+                query.setProjectIds(projectIds);
+            }
+        }
+
         return R.ok(breedingAndPreservationService.pageList(query));
     }
     /**
@@ -90,6 +112,21 @@
             return R.fail(401,"登陆失效");
         }
         TBreedingAndPreservationDTO dto = JSON.parseObject(param,TBreedingAndPreservationDTO.class);
+        if (dto.getStatus()==1){
+            return R.fail("有菌种待确认,无法提交");
+        }
+        if (dto.getStatus()==3){
+            dto.setIsDraft(1);
+        }
+        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());
+        }
         breedingAndPreservationService.save(dto);
         List<TSeparationOfCultureDishes> separationOfCultureDishesList = dto.getSeparationOfCultureDishesList();
         for (TSeparationOfCultureDishes tSeparationOfCultureDishes : separationOfCultureDishesList) {
@@ -103,33 +140,40 @@
         observationOfPetriDishesService.saveBatch(observationOfPetriDishes);
         List<TVaccinationSlope> vaccinationSlopes = dto.getVaccinationSlopes();
         for (TVaccinationSlope tSeparationOfCultureDishes : vaccinationSlopes) {
+            tSeparationOfCultureDishes.setHandleId(tokenService.getLoginUser().getUserId()+"");
+            tSeparationOfCultureDishes.setHandleTime(LocalDateTime.now());
             tSeparationOfCultureDishes.setBreedingPreserveId(dto.getId());
         }
         vaccinationSlopeService.saveBatch(vaccinationSlopes);
         List<TCulturePreservation> culturePreservations = dto.getCulturePreservations();
         for (TCulturePreservation tSeparationOfCultureDishes : culturePreservations) {
+            tSeparationOfCultureDishes.setHandleId(tokenService.getLoginUser().getUserId()+"");
+            tSeparationOfCultureDishes.setHandleTime(LocalDateTime.now());
             tSeparationOfCultureDishes.setBreedingPreserveId(dto.getId());
         }
         culturePreservationService.saveBatch(culturePreservations);
-        if (dto.getStatus()==2){
+        if (dto.getStatus()!=null&&dto.getStatus()==2){
             // 新增消息
             TNotice tNotice = new TNotice();
-            List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                     .eq(TProjectTeamStaff::getRoleType, 2)
                     .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            TProjectTeam one = projectTeamService.lambdaQuery().in(TProjectTeam::getId, collect)
-                    .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());
+            if (!allProjectIds.isEmpty()){
+                TProjectTeam projectTeam = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
+                        .eq(TProjectTeam::getStatus, 1)
+                        .orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
+                TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
+                        .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
+                tNotice.setUserId(projectTeamStaff.getUserId());
 
-            tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
-            tNotice.setStatus(1);
-            tNotice.setNoticeContent("您有【1】条【菌种选育保藏记录】等待签字入库确认;");
-            tNotice.setDataId(dto.getId());
-            tNotice.setNoticeType(5);
-            noticeService.save(tNotice);
+                tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
+                tNotice.setStatus(1);
+                tNotice.setNoticeContent("您有【1】条【菌种选育保藏记录】等待签字入库确认;");
+                tNotice.setDataId(dto.getId());
+                tNotice.setNoticeType(5);
+                noticeService.save(tNotice);
+            }
+
         }
         return R.ok();
     }
@@ -139,7 +183,6 @@
     private TProjectTeamStaffService projectTeamStaffService;
     @Resource
     private TNoticeService noticeService;
-    //@PreAuthorize("@ss.hasPermi('system:breedingAndPreservation:update')")
     @Log(title = "菌种选育保藏记录-编辑选育保藏记录", businessType = BusinessType.UPDATE)
     @ApiOperation(value = "菌种选育保藏记录-编辑选育保藏记录",response = TBreedingAndPreservationDTO.class)
     @PostMapping(value = "/api/t-breeding-and-preservation/update")
@@ -148,6 +191,11 @@
             return R.fail(401,"登陆失效");
         }
         TBreedingAndPreservationDTO dto = JSON.parseObject(param,TBreedingAndPreservationDTO.class);
+        if (dto.getStatus()==3){
+            dto.setIsDraft(1);
+        }else{
+            dto.setIsDraft(0);
+        }
         breedingAndPreservationService.updateById(dto);
         List<TSeparationOfCultureDishes> separationOfCultureDishesList = dto.getSeparationOfCultureDishesList();
         for (TSeparationOfCultureDishes tSeparationOfCultureDishes : separationOfCultureDishesList) {
@@ -176,14 +224,14 @@
         if (dto.getStatus()==2){
             // 新增消息
             TNotice tNotice = new TNotice();
-            List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+            List<String> allProjectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
                     .eq(TProjectTeamStaff::getRoleType, 2)
                     .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
-            TProjectTeam one = projectTeamService.lambdaQuery().in(TProjectTeam::getId, collect)
+            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();
+                    .eq(TProjectTeamStaff::getTeamId, projectTeam.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
             tNotice.setUserId(one1.getUserId());
 
             tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
@@ -195,11 +243,38 @@
         }
         return R.ok();
     }
+    @Log(title = "接种斜面记录确认入库", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "接种斜面记录确认入库",response = TConfirmBreedingAndPreservationDTO.class)
+    @PostMapping(value = "/api/t-breeding-and-preservation/vaccinationSlopesConfirm")
+    public R<Boolean> vaccinationSlopesConfirm(@RequestBody String param) {
+        Long userId = tokenService.getLoginUser().getUserId();
 
+        TConfirmBreedingAndPreservationDTO dto = JSON.parseObject(param,TConfirmBreedingAndPreservationDTO.class);
+        TVaccinationSlope vaccinationSlope = vaccinationSlopeService.getById(dto.getId());
+        vaccinationSlope.setPreserveId(userId+"");
+        vaccinationSlope.setPreserveTime(LocalDateTime.now());
+        vaccinationSlope.setPreserveSignature(dto.getPreserveSignature());
+        vaccinationSlopeService.updateById(vaccinationSlope);
+        return R.ok();
+    }
+    @Log(title = "菌种保藏记录确认入库", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "菌种保藏记录确认入库",response = TConfirmBreedingAndPreservationDTO.class)
+    @PostMapping(value = "/api/t-breeding-and-preservation/culturePreservationsConfirm")
+    public R<Boolean> culturePreservationsConfirm(@RequestBody String param) {
+        Long userId = tokenService.getLoginUser().getUserId();
+        TConfirmBreedingAndPreservationDTO dto = JSON.parseObject(param,TConfirmBreedingAndPreservationDTO.class);
+        TCulturePreservation culturePreservation = culturePreservationService.getById(dto.getId());
+        culturePreservation.setPreserveId(userId+"");
+        culturePreservation.setPreserveTime(LocalDateTime.now());
+        culturePreservation.setPreserveSignature(dto.getPreserveSignature());
+        culturePreservationService.updateById(culturePreservation);
+        return R.ok();
+    }
     //@PreAuthorize("@ss.hasPermi('system:breedingAndPreservation:detail')")
     @ApiOperation(value = "选育保藏记录详情")
     @GetMapping(value = "/open/t-breeding-and-preservation/getDetailById")
     public R<TBreedingAndPreservationDetailVO> getDetailById(@RequestParam String id) {
+        List<SysUser> sysUsers = sysUserService.selectAllList();
         TBreedingAndPreservationDetailVO res = new TBreedingAndPreservationDetailVO();
         TBreedingAndPreservation breedingAndPreservation = breedingAndPreservationService.getById(id);
         BeanUtils.copyProperties(breedingAndPreservation, res);
@@ -207,6 +282,13 @@
         List<TObservationOfPetriDishes> observationOfPetriDishes = observationOfPetriDishesService.lambdaQuery().eq(TObservationOfPetriDishes::getBreedingPreserveId, id).list();
         List<TVaccinationSlope> vaccinationSlopes = vaccinationSlopeService.lambdaQuery().eq(TVaccinationSlope::getBreedingPreserveId, id).list();
         List<TCulturePreservation> culturePreservations = culturePreservationService.lambdaQuery().eq(TCulturePreservation::getBreedingPreserveId, id).list();
+        for (TCulturePreservation culturePreservation : culturePreservations) {
+            SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(Long.valueOf(culturePreservation.getHandleId()))).findFirst()
+                    .orElse(null);
+            if (sysUser!=null){
+                culturePreservation.setHandleName(sysUser.getNickName());
+            }
+        }
         res.setSeparationOfCultureDishesList(separationOfCultureDishesList);
         res.setObservationOfPetriDishes(observationOfPetriDishes);
         res.setVaccinationSlopes(vaccinationSlopes);

--
Gitblit v1.7.1