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/TPedigreeChartController.java |   97 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 73 insertions(+), 24 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 ffcfceb..8c32cfe 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
@@ -16,6 +16,7 @@
 import com.ruoyi.common.utils.bean.BeanUtils;
 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.TPedigreeChartConfirmQuery;
 import com.ruoyi.system.query.TPedigreeChartDetailConfirmCountDTO;
@@ -87,17 +88,22 @@
             }
         }else if (!sysUser.getRoleType().equals("1")){
             query.setRoleType(3);
-            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()){
+
+            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<>());
                 }
-                query.setProjectIds(projectIds);
-            }else{
-                return R.ok(new PageInfo<>());
             }
+
         }else{
             query.setRoleType(1);
         }
@@ -165,7 +171,7 @@
                 count.setPedigreeChartId(parent.getId());
                 count.setId(null);
                 if (parent.getStatus()==1){
-                    count.setAuditStatus(0);
+                    count.setAuditStatus(1);
                 }else{
                     count.setAuditStatus(1);
                 }
@@ -200,12 +206,12 @@
                             TPedigreeChartParentTwoCountDTO childCount = count1List.get(0);
                             childCount.setType(2);
                             if (parent.getStatus()==1){
-                                count.setAuditStatus(0);
+                                childCount.setAuditStatus(1);
                             }else{
-                                count.setAuditStatus(1);
+                                childCount.setAuditStatus(1);
                             }
-                            count.setVaccinateId(loginUser.getUserId()+"");
-                            count.setVaccinateTime(LocalDateTime.now());
+                            childCount.setVaccinateId(loginUser.getUserId()+"");
+                            childCount.setVaccinateTime(LocalDateTime.now());
                             childCount.setParentId(tPedigreeChartParentTwoDTO.getId());
                             childCount.setPedigreeChartId(parent.getId());
                             childCount.setStatus(1);
@@ -291,6 +297,13 @@
             String child = JSON.toJSONString(dto.getOne().get(0));
             parent.setJson(child);
         }
+
+        //不能修改别人的数据
+        TPedigreeChart byId = pedigreeChartService.getById(parent.getId());
+        if (!loginUser.getUser().getNickName().equals(byId.getCreateBy())) {
+            return R.fail("不能修改其他工程师数据");
+        }
+
         List<String> projectIds = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getUserId,
                         tokenService.getLoginUser().getUserId())
                 .list().stream().map(TProjectTeamStaff::getTeamId).collect(Collectors.toList());
@@ -304,7 +317,7 @@
         Integer status = parent.getStatus();
         TPedigreeChart pedigreeChart = pedigreeChartService.getById(parent.getId());
         if (pedigreeChart.getStatus() == 2){
-            parent.setStatus(2);
+            return R.fail("谱系图已提交,不可编辑");
         }
         pedigreeChartService.updateById(parent);
         parent.setStatus( status);
@@ -358,7 +371,7 @@
                 count.setStatus(1);
                 if (count.getId()==null){
                     if (parent.getStatus()==1){
-                        count.setAuditStatus(0);
+                        count.setAuditStatus(1);
                         count.setCodeStatus(parent.getStatus());
                     }else{
                         count.setAuditStatus(1);
@@ -434,7 +447,7 @@
                             childCount.setType(2);
                             if (childCount.getId()==null){
                                 if (parent.getStatus()==1){
-                                    childCount.setAuditStatus(0);
+                                    childCount.setAuditStatus(1);
                                     childCount.setCodeStatus(parent.getStatus());
                                 }else{
                                     childCount.setAuditStatus(1);
@@ -530,7 +543,7 @@
                     .eq(TProjectTeam::getStatus, 1)
                     .orderByDesc(BaseModel::getCreateTime).last("limit 1").one();
             TProjectTeamStaff projectTeamStaff = projectTeamStaffService.lambdaQuery()
-                    .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 1).one();
+                    .eq(TProjectTeamStaff::getTeamId, team.getId()).eq(TProjectTeamStaff::getRoleType, 2).one();
             tNotice.setCommitId(tokenService.getLoginUser().getUserId()+"");
             tNotice.setUserId(projectTeamStaff.getUserId());
             tNotice.setStatus(1);
@@ -666,6 +679,10 @@
         TPedigreeChartDetailQuery query = JSON.parseObject(param, TPedigreeChartDetailQuery.class);
         return R.ok(pedigreeChartService.pageListDetail(query));
     }
+
+    @Resource
+    private TProjectTeamMapper tProjectTeamMapper;
+
     /**
      * 谱系图-菌种传代生产谱系图详情
      */
@@ -675,7 +692,21 @@
     public R<TPedigreeChart> getDetailInfoById(@RequestParam String id) {
         List<TPedigreeChartParentOneDTO> tPedigreeChartParentOneDTOS = new ArrayList<>();
         TPedigreeChart pedigreeChart = pedigreeChartService.getById(id);
-        List<TPedigreeChartDetail> details = pedigreeChartDetailService.lambdaQuery().eq(TPedigreeChartDetail::getPedigreeChartId, id).list();
+        if (pedigreeChart == null) {
+            return R.fail("谱系图不存在或已删除");
+        }
+        List<TPedigreeChartDetail> details = new ArrayList<>(pedigreeChartDetailService.lambdaQuery()
+                .eq(TPedigreeChartDetail::getPedigreeChartId, id)
+                .orderByDesc(TPedigreeChartDetail::getUpdateTime)
+                .orderByDesc(TPedigreeChartDetail::getCreateTime)
+                .list().stream()
+                .filter(detail -> StringUtils.isNotEmpty(detail.getId()))
+                .collect(Collectors.toMap(
+                        TPedigreeChartDetail::getId,
+                        detail -> detail,
+                        (first, duplicate) -> first,
+                        LinkedHashMap::new
+                )).values());
         TPedigreeChartParentAllDetailDTO tPedigreeChartParentAllDetailDTO = new TPedigreeChartParentAllDetailDTO();
         // 祖代
         TPedigreeChartDetail pedigreeChartDetail = details.stream().filter(e -> e.getParentId().equals("0")
@@ -697,7 +728,6 @@
                 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 : childs) {
                     TPedigreeChartParentTwoDTO tPedigreeChartParentTwoDTO = new TPedigreeChartParentTwoDTO();
                     BeanUtils.copyProperties(tPedigreeChartDetail,tPedigreeChartParentTwoDTO);
@@ -708,6 +738,7 @@
                         ArrayList<TPedigreeChartParentTwoCountDTO> tPedigreeChartParentTwoCountDTOS = new ArrayList<>();
                         TPedigreeChartParentTwoCountDTO tPedigreeChartParentTwoCountDTO = new TPedigreeChartParentTwoCountDTO();
                         BeanUtils.copyProperties(childCountChild,tPedigreeChartParentTwoCountDTO);
+                        List<TPedigreeChartParentThreeDTO> tPedigreeChartParentThreeDTOS = new ArrayList<>();
                         List<TPedigreeChartDetail> childChilds = details.stream().filter(e -> e.getParentId().equals(tPedigreeChartParentTwoCountDTO.getId())
                                 && e.getType() == 1).collect(Collectors.toList());
                         for (TPedigreeChartDetail chartDetail : childChilds) {
@@ -730,6 +761,28 @@
             tPedigreeChartParentAllDetailDTO.setOne(tPedigreeChartParentOneDTOS);
         }
         pedigreeChart.setPedigreeChartParentAllDetailDTO(tPedigreeChartParentAllDetailDTO);
+
+        if (com.ruoyi.common.utils.StringUtils.isNotEmpty(pedigreeChart.getProjectId())) {
+            TProjectTeam tProjectTeam = tProjectTeamMapper.selectById(pedigreeChart.getProjectId());
+            if (tProjectTeam != null) {
+                List<TProjectTeamStaff> list = projectTeamStaffService.lambdaQuery().eq(TProjectTeamStaff::getTeamId, tProjectTeam.getId()).list();
+                StringBuilder staffNames = new StringBuilder();
+                for (TProjectTeamStaff tProjectTeamStaff : list) {
+                    SysUser sysUser = sysUserService.selectUserById(Long.valueOf(tProjectTeamStaff.getUserId()));
+                    if (sysUser!=null){
+                        staffNames.append(sysUser.getNickName()).append(",");
+                    }
+                }
+                if (org.springframework.util.StringUtils.hasLength(staffNames.toString())){
+                    tProjectTeam.setStaff(staffNames.substring(0, staffNames.toString().length() - 1));
+                }
+
+                List<TProjectTeam> tProjectTeamList = new ArrayList<>();
+                tProjectTeamList.add(tProjectTeam);
+                pedigreeChart.setTProjectTeamList(tProjectTeamList);
+            }
+        }
+
         return R.ok(pedigreeChart);
     }
     /**
@@ -779,11 +832,7 @@
         pedigreeChartDetail1.setType(2);
 
         pedigreeChartDetail1.setCodeStatus(dto.getCodeStatus());
-        if (dto.getCodeStatus()==1){
-            pedigreeChartDetail1.setAuditStatus(0);
-        }else{
-            pedigreeChartDetail1.setAuditStatus(1);
-        }
+        pedigreeChartDetail1.setAuditStatus(1);
         pedigreeChartDetailService.save(pedigreeChartDetail1);
         return R.ok();
     }

--
Gitblit v1.7.1