From f76bf27bf93e523ae4572d9e10e9ca541c324185 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期二, 03 十一月 2026 17:18:55 +0800
Subject: [PATCH] 部分改动

---
 src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoHandleService.java |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoHandleService.java b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoHandleService.java
index 73a18fe..77b8ad2 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoHandleService.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoHandleService.java
@@ -4,10 +4,13 @@
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.google.common.collect.Lists;
 import com.ruoyi.basic.service.CustomerFollowUpFileService;
 import com.ruoyi.common.enums.PlanStageEnum;
 import com.ruoyi.common.enums.ReviewStatusEnum;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.projectManagement.dto.InfoStageDto;
 import com.ruoyi.projectManagement.dto.PlanStageDto;
 import com.ruoyi.projectManagement.dto.SaveInfoDto;
 import com.ruoyi.projectManagement.mapper.InfoMapper;
@@ -18,7 +21,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
@@ -56,16 +59,29 @@
         }
         info.setTeam(saveInfoDto.getTeamList());
         if (info.getId() == null) {
-            // 鐢熸垚瀵瑰簲鐨勯樁娈靛叧绯绘暟鎹�
-            info.setPlanStage(getPlanStageList(info.getProjectManagementPlanId()));
+            // 鏂伴」鐩樁娈电敱 project_management_phase 鐙珛缁存姢锛屼笉鍐嶇敓鎴愭棫璁″垝妯℃澘闃舵銆�
+            info.setPlanStage(Collections.emptyList());
+            if (StrUtil.isBlank(info.getCurrentPhase())) {
+                info.setCurrentPhase("鏈紑濮�");
+            }
             // 鎻掑叆榛樿鐘舵��
             info.setStatus(PlanStageEnum.TO_BEGIN.getCode());
             info.setReviewStatus(ReviewStatusEnum.PENDING_REVIEW.getCode());
             infoMapper.insert(info);
         } else {
+            Info existing = infoMapper.selectById(info.getId());
+            if (existing == null) throw new ServiceException("椤圭洰涓嶅瓨鍦�");
+            if (!StrUtil.isBlank(existing.getCurrentPhase()) && !"鏈紑濮�".equals(existing.getCurrentPhase())) {
+                throw new ServiceException("椤圭洰寮�濮嬪悗鍩烘湰淇℃伅鍜屽洟闃熶俊鎭凡閿佸畾锛屼粎鍙�氳繃浜哄憳璋冩暣鍔熻兘淇敼椤圭洰鎵ц浜�");
+            }
             infoMapper.updateById(info);
         }
         return info.getId();
+    }
+
+    @Transactional
+    public void updateById(@NotNull Info info){
+        infoMapper.updateById(info);
     }
 
     public SaveInfoDto getInfoById(@NotNull Long id) {
@@ -99,7 +115,7 @@
 
     private List<PlanStageDto> getPlanStageList(@NotNull Long planId) {
         List<PlanNode> planNodeByPlanId = planService.getPlanNodeByPlanId(planId);
-        return planNodeByPlanId.stream().map(it -> new PlanStageDto(it.getId(), it.getName(), PlanStageEnum.TO_BEGIN)).collect(Collectors.toList());
+        return planNodeByPlanId.stream().map(it -> new PlanStageDto(it.getId(), it.getName(), PlanStageEnum.TO_BEGIN, it.getSort(), it.getEstimatedDuration())).collect(Collectors.toList());
     }
 
 

--
Gitblit v1.9.3