From faad898297c608a25ff039e0769e1acedccd8541 Mon Sep 17 00:00:00 2001
From: chenhao <852066789@qq.com>
Date: Fri, 6 Jun 2025 17:54:35 +0800
Subject: [PATCH] =?UTF-8?q?refactor(sip):=20=E4=BC=98=E5=8C=96=E9=A1=B9?=
 =?UTF-8?q?=E7=9B=AE=E8=AE=A2=E5=8D=95=E4=BF=A1=E6=81=AF=E4=BF=9D=E5=AD=98?=
 =?UTF-8?q?=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- 修改 saveProductInfo 方法,增加 projectId 参数- 更新项目产品信息的保存逻辑,兼容已有项目 ID 的情况- 在订单信息插入和更新时,传递正确的项目 ID 参数
---
 .../sip/service/impl/ProjectOrderInfoServiceImpl.java  | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
index 67729c39..d6177ac7 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java
@@ -88,7 +88,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
         projectOrderInfo.setOrderCode(orderNumber);
         projectOrderInfo.setCreateTime(DateUtils.getNowDate());
         projectOrderInfo.setCreateBy(ShiroUtils.getUserId().toString());
-        saveProductInfo(projectOrderInfo);
+        saveProductInfo(projectOrderInfo, projectOrderInfo.getProjectId());
         List<ProjectOrderFileLog> contractFileList = projectOrderInfo.getContractFileList();
         int i = projectOrderInfoMapper.insertProjectOrderInfo(projectOrderInfo);
         if (CollUtil.isNotEmpty(contractFileList)) {
@@ -97,7 +97,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
         return i;
     }
 
-    private void saveProductInfo(ProjectOrderInfo projectOrderInfo) {
+    private void saveProductInfo(ProjectOrderInfo projectOrderInfo, Long projectId) {
         //插入产品信息
         List<ProjectProductInfo> projectProductInfoList = projectOrderInfo.getHardwareProjectProductInfoList();
         if (CollUtil.isEmpty(projectProductInfoList)) {
@@ -107,7 +107,9 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
         projectProductInfoList.addAll(CollUtil.isNotEmpty(projectOrderInfo.getMaintenanceProjectProductInfoList()) ? projectOrderInfo.getMaintenanceProjectProductInfoList() : new ArrayList<>());
         if (CollUtil.isNotEmpty(projectProductInfoList)) {
             for (ProjectProductInfo projectProductInfo : projectProductInfoList) {
-                projectProductInfo.setProjectId(projectOrderInfo.getId());
+                if (projectProductInfo.getProjectId() == null) {
+                    projectProductInfo.setProjectId(projectId);
+                }
             }
             productInfoService.saveBatch(projectProductInfoList);
         }
@@ -160,7 +162,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService {
         }
         projectOrderInfo.setUpdateBy(ShiroUtils.getUserId().toString());
         projectOrderInfo.setUpdateTime(DateUtils.getNowDate());
-        saveProductInfo(projectOrderInfo);
+        saveProductInfo(projectOrderInfo, projectOrderInfo.getProjectId());
         return projectOrderInfoMapper.updateProjectOrderInfo(projectOrderInfo);
     }