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

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java |   77 ++++++++++++++++++++++++++------------
 1 files changed, 52 insertions(+), 25 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
index c8e0fa8..510786a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TTrainLibraryController.java
@@ -2,6 +2,7 @@
 
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
@@ -18,10 +19,7 @@
 import com.ruoyi.system.query.TTrainLibraryDetailQuery;
 import com.ruoyi.system.query.TTrainLibraryQuery;
 import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.ChoiceUserVO;
-import com.ruoyi.system.vo.TProjectTeamVO;
-import com.ruoyi.system.vo.TTrainLibraryDetailVO;
-import com.ruoyi.system.vo.TTrainLibraryVO;
+import com.ruoyi.system.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -141,7 +139,6 @@
             return R.fail(401,"登陆失效");
         }
         TTrainLibraryDTO dto = JSON.parseObject(param,TTrainLibraryDTO.class);
-        dto.setStock(1);
         tTrainLibraryService.save(dto);
         if (dto.getIsDraft()==0){
             // 新增入库记录
@@ -198,7 +195,13 @@
             TTrainLibrary tTrainLibrary = new TTrainLibrary();
             BeanUtils.copyProperties(dto,tTrainLibrary);
             if (i==0){
-                tTrainLibrary.setStatus(3);
+                List<String> collect = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId, tokenService.getLoginUser().getUserId())
+                        .eq(TProjectTeamStaff::getRoleType, 3)
+                        .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
+                if (collect.isEmpty()){
+                    return R.fail("请先加入项目组");
+                }
+                tTrainLibrary.setStatus(4);
                 tTrainLibrary.setIsDraft(0);
                 tTrainLibraryService.save(tTrainLibrary);
                 TTrainLibraryWarehousing tTrainLibraryWarehousing = new TTrainLibraryWarehousing();
@@ -209,9 +212,7 @@
                 tTrainLibraryWarehousingService.save(tTrainLibraryWarehousing);
                 // 新增消息
                 TNotice tNotice = new TNotice();
-                List<String> collect = 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();
@@ -261,14 +262,17 @@
         TTrainLibraryDTO dto = JSON.parseObject(param,TTrainLibraryDTO.class);
         tTrainLibraryService.updateById(dto);
         if (dto.getIsDraft()==0){
-            // 新增入库记录
-            TTrainLibraryWarehousing tTrainLibraryWarehousing = new TTrainLibraryWarehousing();
-            tTrainLibraryWarehousing.setTrainLibraryId(dto.getId());
-            tTrainLibraryWarehousing.setType(2);
-            tTrainLibraryWarehousing.setBoundTime(LocalDateTime.now());
-            tTrainLibraryWarehousing.setHandleId(tokenService.getLoginUser().getUserId());
-            tTrainLibraryWarehousing.setHandleSignature(dto.getHandleSignature());
-            tTrainLibraryWarehousingService.updateById(tTrainLibraryWarehousing);
+            List<TTrainLibraryWarehousing> list = tTrainLibraryWarehousingService.lambdaQuery().eq(TTrainLibraryWarehousing::getTrainLibraryId, dto.getId()).list();
+            if (list.isEmpty()){
+                // 新增入库记录
+                TTrainLibraryWarehousing tTrainLibraryWarehousing = new TTrainLibraryWarehousing();
+                tTrainLibraryWarehousing.setTrainLibraryId(dto.getId());
+                tTrainLibraryWarehousing.setType(2);
+                tTrainLibraryWarehousing.setBoundTime(LocalDateTime.now());
+                tTrainLibraryWarehousing.setHandleId(tokenService.getLoginUser().getUserId());
+                tTrainLibraryWarehousing.setHandleSignature(dto.getHandleSignature());
+                tTrainLibraryWarehousingService.save(tTrainLibraryWarehousing);
+            }
         }
         return R.ok();
     }
@@ -287,11 +291,11 @@
         TTrainLibraryWarehousing tTrainLibraryWarehousing = tTrainLibraryWarehousingService.getById(query.getId());
         TTrainLibrary byId = tTrainLibraryService.getById(tTrainLibraryWarehousing.getTrainLibraryId());
         if (tTrainLibraryWarehousing.getType()==1){
+            byId.setStock(0);
             byId.setStatus(1);
-
         }else{
+            byId.setStock(1);
             byId.setStatus(3);
-
         }
         tTrainLibraryService.updateById(byId);
         tTrainLibraryWarehousing.setPreserveSignature(query.getPreserveSignature());
@@ -322,10 +326,26 @@
     public R<TTrainLibraryDetailVO> getDetailById(@RequestBody String param) {
         TTrainLibraryDetailQuery query = JSON.parseObject(param, TTrainLibraryDetailQuery.class);
         TTrainLibraryDetailVO detailById = tTrainLibraryService.getDetailById(query);
+        PageInfo<TTrainLibraryWarehousingVO> warehousingList = detailById.getWarehousingList();
+        List<TTrainLibraryWarehousingVO> records = warehousingList.getRecords();
+        List<SysUser> sysUsers = sysUserService.selectList();
+        for (TTrainLibraryWarehousingVO record : records) {
+            if (record.getHandleId()!=null){
+                SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(record.getHandleId())).findFirst().orElse(null);
+                if (sysUser!=null){
+                    record.setHandleName(sysUser.getNickName());
+                }
+            }
+            if (record.getPreserveId()!=null){
+                SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(record.getPreserveId())).findFirst().orElse(null);
+                if (sysUser!=null){
+                    record.setPreserveName(sysUser.getNickName());
+                }
+            }
+        }
         List<TTrainLibraryWarehousing> list = tTrainLibraryWarehousingService
                 .lambdaQuery().eq(TTrainLibraryWarehousing::getTrainLibraryId,query.getId())
                 .orderByDesc(TTrainLibraryWarehousing::getCreateTime).list();
-        List<SysUser> sysUsers = sysUserService.selectList();
         for (TTrainLibraryWarehousing tTrainLibraryWarehousing : list) {
             if (tTrainLibraryWarehousing.getHandleId()!=null){
                 SysUser sysUser = sysUsers.stream().filter(e -> e.getUserId().equals(tTrainLibraryWarehousing.getHandleId())).findFirst().orElse(null);
@@ -367,7 +387,6 @@
     /**
      * 新增菌种库出入记录
      */
-    //@PreAuthorize("@ss.hasPermi('system:trainLibrary:addWarehousing')")
     @ApiOperation(value = "新增菌种库出入记录",tags = "菌种库管理",response = AddTrainLibraryWarehousingDTO.class)
     @Log(title = "菌种库管理-新增菌种库出入记录", businessType = BusinessType.INSERT)
     @PostMapping(value = "/open/t-train-library/addWarehousing")
@@ -379,12 +398,22 @@
         TTrainLibrary tTrainLibrary = tTrainLibraryService.getById(query.getTrainLibraryId());
         if (query.getType()==1){
             if (tTrainLibrary.getStatus()==1||tTrainLibrary.getStatus()==2){
-                return R.fail("当前菌种为出库状态,不可重复出库");
+                if(tTrainLibrary.getStatus()==2){
+                    return R.fail("当前菌种为出库待确认状态,不可重复出库");
+
+                }else{
+                    return R.fail("当前菌种为已出库状态,不可重复出库");
+                }
             }
         }
         if (query.getType()==2){
             if (tTrainLibrary.getStatus()==3||tTrainLibrary.getStatus()==4){
-                return R.fail("当前菌种为入库状态,不可重复入库");
+                if(tTrainLibrary.getStatus()==4){
+                    return R.fail("当前菌种为入库待确认状态,不可重复入库");
+
+                }else{
+                    return R.fail("当前菌种为已入库状态,不可重复入库");
+                }
             }
         }
         query.setHandleId(tokenService.getLoginUser().getUserId());
@@ -395,7 +424,6 @@
     /**
      * 编辑出入库记录
      */
-    //@PreAuthorize("@ss.hasPermi('system:trainLibrary:addWarehousing')")
     @ApiOperation(value = "编辑出入库记录",tags = "菌种库管理",response = AddTrainLibraryWarehousingDTO.class)
     @PostMapping(value = "/api/t-train-library/editWarehousing")
     public R editWarehousing(@RequestBody String param) {
@@ -407,7 +435,6 @@
     /**
      * 编辑出入库记录
      */
-    //@PreAuthorize("@ss.hasPermi('system:trainLibrary:addWarehousing')")
     @ApiOperation(value = "编辑出入库记录-获取详情",tags = "菌种库管理",response = AddTrainLibraryWarehousingDTO.class)
     @PostMapping(value = "/open/t-train-library/editWarehousingDetail")
     public R editWarehousingDetail(@RequestParam String id) {

--
Gitblit v1.7.1