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/TPedigreeChartController.java |  148 ++++++++++++++++++++++++++++--------------------
 1 files changed, 86 insertions(+), 62 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
index 5bef464..364aad8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TPedigreeChartController.java
@@ -8,6 +8,7 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.BaseModel;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
@@ -52,7 +53,8 @@
     @Resource
     private TokenService tokenService;
 
-
+    @Resource
+    private ISysUserService sysUserService;
 
 
 
@@ -64,6 +66,30 @@
     @PostMapping(value = "/api/t-pedigree-chart/pageList")
     public R<PageInfo<TPedigreeChartVO>> pageList(@RequestBody String param) {
         TPedigreeChartQuery query = JSON.parseObject(param, TPedigreeChartQuery.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(pedigreeChartService.pageList(query));
     }
 
@@ -83,27 +109,36 @@
         TPedigreeChartParentAllDTO dto = JSON.parseObject(param, TPedigreeChartParentAllDTO.class);
         TPedigreeChart parent = dto.getParent();
         if (!dto.getOne().isEmpty()){
-            String one1Json = JSON.toJSONString(dto.getOne().get(0));
-            parent.setJson(one1Json);
+            String child = JSON.toJSONString(dto.getOne().get(0));
+            parent.setJson(child);
+        }
+        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();
+            parent.setProjectId(projectTeam.getId());
         }
         pedigreeChartService.save(parent);
         if (!dto.getOne().isEmpty()){
-            TPedigreeChartParentOneDTO one = dto.getOne().get(0);
-            one.setParentId("0");
-            one.setType(1);
-            one.setStatus(one.getStatus());
-            one.setStorageTime(LocalDateTime.now());
-            one.setPedigreeChartId(parent.getId());
-            one.setVaccinateId(loginUser.getUserId()+"");
-            one.setVaccinateSignature(one.getVaccinateSignature());
-            one.setVaccinateTime(LocalDateTime.now());
-            one.setId(null);
-            pedigreeChartDetailService.save(one);
-            List<TPedigreeChartParentOneCountDTO> countList = one.getChildren();
+            TPedigreeChartParentOneDTO oneLevel = dto.getOne().get(0);
+            oneLevel.setParentId("0");
+            oneLevel.setType(1);
+            oneLevel.setStatus(oneLevel.getStatus());
+            oneLevel.setStorageTime(LocalDateTime.now());
+            oneLevel.setPedigreeChartId(parent.getId());
+            oneLevel.setVaccinateId(loginUser.getUserId()+"");
+            oneLevel.setVaccinateSignature(oneLevel.getVaccinateSignature());
+            oneLevel.setVaccinateTime(LocalDateTime.now());
+            oneLevel.setId(null);
+            pedigreeChartDetailService.save(oneLevel);
+            List<TPedigreeChartParentOneCountDTO> countList = oneLevel.getChildren();
 
             if (!countList.isEmpty()){
                 TPedigreeChartParentOneCountDTO count = countList.get(0);
-                count.setParentId(one.getId());
+                count.setParentId(oneLevel.getId());
                 count.setType(2);
                     count.setStatus(1);
                 count.setPedigreeChartId(parent.getId());
@@ -112,7 +147,7 @@
                 pedigreeChartDetailService.save(count);
                 if (count.getChildren()!=null){
                     for (TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO : count.getChildren()) {
-                        tPedigreeChartParentTwoDTO.setParentId(one.getId());
+                        tPedigreeChartParentTwoDTO.setParentId(oneLevel.getId());
                         tPedigreeChartParentTwoDTO.setPedigreeChartId(parent.getId());
                         tPedigreeChartParentTwoDTO.setType(1);
                         if (tPedigreeChartParentTwoDTO.getStatus()==null){
@@ -130,16 +165,16 @@
                         List<TPedigreeChartParentTwoCountDTO> count1List = tPedigreeChartParentTwoDTO.getChildren();
                         if (!count1List.isEmpty()){
                             // 传代数
-                            TPedigreeChartParentTwoCountDTO count1 = count1List.get(0);
-                            count1.setType(2);
-                            count1.setParentId(tPedigreeChartParentTwoDTO.getId());
-                            count1.setPedigreeChartId(parent.getId());
-                            count1.setStatus(1);
-                            count1.setId(null);
-                            pedigreeChartDetailService.save(count1);
-                            if (count1.getChildren()!=null){
-                                for (TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO : count1.getChildren()) {
-                                    tPedigreeChartParentThreeDTO.setParentId(count1.getId());
+                            TPedigreeChartParentTwoCountDTO childCount = count1List.get(0);
+                            childCount.setType(2);
+                            childCount.setParentId(tPedigreeChartParentTwoDTO.getId());
+                            childCount.setPedigreeChartId(parent.getId());
+                            childCount.setStatus(1);
+                            childCount.setId(null);
+                            pedigreeChartDetailService.save(childCount);
+                            if (childCount.getChildren()!=null){
+                                for (TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO : childCount.getChildren()) {
+                                    tPedigreeChartParentThreeDTO.setParentId(childCount.getId());
                                     tPedigreeChartParentThreeDTO.setPedigreeChartId(parent.getId());
                                     tPedigreeChartParentThreeDTO.setType(1);
                                     if (tPedigreeChartParentThreeDTO.getStatus()==null){
@@ -158,22 +193,22 @@
                     }
                 }
             }
-            String one1Json = JSON.toJSONString(one);
-            parent.setJson(one1Json);
+            String child = JSON.toJSONString(oneLevel);
+            parent.setJson(child);
             pedigreeChartService.updateById(parent);
             // 新增消息
             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());
-            if (!collect.isEmpty()){
-                TProjectTeam team = projectTeamService.lambdaQuery().in(TProjectTeam::getId, collect)
+            if (!allProjectIds.isEmpty()){
+                TProjectTeam team = projectTeamService.lambdaQuery().in(TProjectTeam::getId, allProjectIds)
                         .eq(TProjectTeam::getStatus, 1)
                         .orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
-                TProjectTeamStaff one1 = projectTeamStaffService.lambdaQuery()
+                TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
                         .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
                 tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
-                tNotice.setUserId(one1.getUserId());
+                tNotice.setUserId(projectTeamStaff.getUserId());
                 tNotice.setStatus(1);
                 tNotice.setNoticeContent("菌种实验员新增【1】条【菌种传代生产谱系图】操作,等待您签字确认;");
                 tNotice.setDataId(parent.getId());
@@ -192,7 +227,6 @@
     private TNoticeService noticeService;
     /**
      */
-    //@PreAuthorize("@ss.hasPermi('system:pedigreeChart:addProgenitor')")
     @Log(title = "谱系图-编辑谱系图-编辑谱系图", businessType = BusinessType.UPDATE)
     @ApiOperation(value = "编辑谱系图-编辑谱系图",response = TPedigreeChartParentAllDTO.class)
     @PostMapping(value = "/api/t-pedigree-chart/editProgenitor")
@@ -204,8 +238,8 @@
         TPedigreeChartParentAllDTO dto = JSON.parseObject(param, TPedigreeChartParentAllDTO.class);
         TPedigreeChart parent = dto.getParent();
         if (!dto.getOne().isEmpty()){
-            String one1Json = JSON.toJSONString(dto.getOne().get(0));
-            parent.setJson(one1Json);
+            String child = JSON.toJSONString(dto.getOne().get(0));
+            parent.setJson(child);
         }
         pedigreeChartService.updateById(parent);
 //        pedigreeChartDetailService.remove(new LambdaQueryWrapper<TPedigreeChartDetail>()
@@ -362,36 +396,36 @@
             // 祖代/母代
             TPedigreeChartParentOneDTO tPedigreeChartParentOneDTO = new TPedigreeChartParentOneDTO();
             BeanUtils.copyProperties(pedigreeChartDetail,tPedigreeChartParentOneDTO);
-            TPedigreeChartDetail pedigreeChartDetail1 = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentOneDTO.getId())
+            TPedigreeChartDetail childCount = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentOneDTO.getId())
                     && e.getType() == 2).findFirst().orElse(null);
             // 传代计划数
-            if (pedigreeChartDetail1!=null){
+            if (childCount!=null){
                 TPedigreeChartParentOneCountDTO tPedigreeChartParentOneCountDTO = new TPedigreeChartParentOneCountDTO();
                 List<TPedigreeChartParentOneCountDTO> tPedigreeChartParentOneCountDTOS = new ArrayList<>();
 
-                BeanUtils.copyProperties(pedigreeChartDetail1,tPedigreeChartParentOneCountDTO);
+                BeanUtils.copyProperties(childCount,tPedigreeChartParentOneCountDTO);
                 tPedigreeChartParentOneCountDTO.setParent(pedigreeChartDetail);
                 // 祖代母代传代数
-                List<TPedigreeChartDetail> collect = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentOneCountDTO.getId())
+                List<TPedigreeChartDetail> childs = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentOneCountDTO.getId())
                         && e.getType() == 1).collect(Collectors.toList());
                 List<TPedigreeChartParentTwoDTO> tPedigreeChartParentTwoDTOS = new ArrayList<>();
                 List<TPedigreeChartParentThreeDTO> tPedigreeChartParentThreeDTOS = new ArrayList<>();
-                for (TPedigreeChartDetail tPedigreeChartDetail : collect) {
+                for (TPedigreeChartDetail tPedigreeChartDetail : childs) {
                     TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO = new TPedigreeChartParentTwoDTO();
                     BeanUtils.copyProperties(tPedigreeChartDetail,tPedigreeChartParentTwoDTO);
-                    tPedigreeChartParentTwoDTO.setParent(pedigreeChartDetail1);
-                    TPedigreeChartDetail pedigreeChartDetail2 = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoDTO.getId())
+                    tPedigreeChartParentTwoDTO.setParent(childCount);
+                    TPedigreeChartDetail childCountChild = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoDTO.getId())
                             && e.getType() == 2).findFirst().orElse(null);
-                    if (pedigreeChartDetail2!=null){
+                    if (childCountChild!=null){
                         ArrayList<TPedigreeChartParentTwoCountDTO> tPedigreeChartParentTwoCountDTOS = new ArrayList<>();
                         TPedigreeChartParentTwoCountDTO tPedigreeChartParentTwoCountDTO = new TPedigreeChartParentTwoCountDTO();
-                        BeanUtils.copyProperties(pedigreeChartDetail2,tPedigreeChartParentTwoCountDTO);
-                        List<TPedigreeChartDetail> collect1 = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoCountDTO.getId())
+                        BeanUtils.copyProperties(childCountChild,tPedigreeChartParentTwoCountDTO);
+                        List<TPedigreeChartDetail> childChilds = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoCountDTO.getId())
                                 && e.getType() == 1).collect(Collectors.toList());
-                        for (TPedigreeChartDetail chartDetail : collect1) {
+                        for (TPedigreeChartDetail chartDetail : childChilds) {
                             TPedigreeChartParentThreeDTO tPedigreeChartParentThreeDTO = new TPedigreeChartParentThreeDTO();
                             BeanUtils.copyProperties(chartDetail,tPedigreeChartParentThreeDTO);
-                            tPedigreeChartParentThreeDTO.setParent(pedigreeChartDetail2);
+                            tPedigreeChartParentThreeDTO.setParent(childCountChild);
                             tPedigreeChartParentThreeDTOS.add(tPedigreeChartParentThreeDTO);
                         }
                         tPedigreeChartParentTwoCountDTO.setChildren(tPedigreeChartParentThreeDTOS);
@@ -413,7 +447,6 @@
     /**
      * 谱系图-菌种传代生产谱系图详情-菌种详情
      */
-    //@PreAuthorize("@ss.hasPermi('system:pedigreeChart:strainInfo')")
     @ApiOperation(value = "谱系图-菌种传代生产谱系图详情-菌种详情")
     @GetMapping(value = "/api/t-pedigree-chart/strainInfo")
     public R strainInfo(@RequestParam String id) {
@@ -437,9 +470,9 @@
         pedigreeChartDetail1.setVaccinateId(tokenService.getLoginUser().getUserId()+"");
         pedigreeChartDetail1.setVaccinateTime(LocalDateTime.now());
         pedigreeChartDetail1.setVaccinateSignature(dto.getVaccinateSignature());
-        TPedigreeChartDetail byId = pedigreeChartDetailService.getById(dto.getParentId());
+        TPedigreeChartDetail tPedigreeChartDetail = pedigreeChartDetailService.getById(dto.getParentId());
         pedigreeChartDetail1.setGenerationCount(dto.getGenerationCount());
-        pedigreeChartDetail1.setPedigreeChartId(byId.getPedigreeChartId());
+        pedigreeChartDetail1.setPedigreeChartId(tPedigreeChartDetail.getPedigreeChartId());
         pedigreeChartDetail1.setType(2);
         pedigreeChartDetailService.save(pedigreeChartDetail1);
         return R.ok();
@@ -464,15 +497,6 @@
         pedigreeChartDetailService.updateById(pedigreeChartDetail);
         return R.ok();
     }
-    /**
-     * 谱系图-代确认入库菌种列表
-     */
-    //@PreAuthorize("@ss.hasPermi('system:pedigreeChart:listConfirm')")
-//    @ApiOperation(value = "谱系图-代确认入库菌种列表",response = TPedigreeChartConfirmQuery.class)
-//    @GetMapping(value = "/api/t-pedigree-chart/listConfirm")
-//    public R<PageInfo<TPedigreeChartConfirmVO>> listConfirm(@RequestBody String param) {
-//        TPedigreeChartConfirmQuery query = JSON.parseObject(param, TPedigreeChartConfirmQuery.class);
-//        return R.ok(pedigreeChartService.listConfirm(query));
-//    }
+
 }
 

--
Gitblit v1.7.1