From 92e61379746ec9c787694300ec84539d16bba5d1 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 30 十二月 2025 09:58:17 +0800
Subject: [PATCH] feat(product): 添加产品结构父子关系功能

---
 src/main/java/com/ruoyi/production/pojo/ProductStructure.java                    |    5 +++++
 src/main/resources/mapper/production/ProductStructureMapper.xml                  |   17 +++++++++--------
 src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java |    5 ++++-
 src/main/java/com/ruoyi/production/controller/ProductStructureController.java    |    5 -----
 doc/create_table_product_structure.sql                                           |    2 ++
 src/main/java/com/ruoyi/production/dto/ProductStructureDto.java                  |    4 ++--
 6 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/doc/create_table_product_structure.sql b/doc/create_table_product_structure.sql
index 4f7d7f6..83af495 100644
--- a/doc/create_table_product_structure.sql
+++ b/doc/create_table_product_structure.sql
@@ -12,3 +12,5 @@
     disk_quantity      numeric(16, 4) not null comment '鐩樻暟閲�',
     tenant_id          bigint         not null comment '绉熸埛id'
 );
+alter table product_structure
+    add parent_id bigint null comment '鐖秈d';
diff --git a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
index 0e26460..f2f4ef1 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -32,9 +32,4 @@
     public R addOrUpdate(@RequestBody ProductStructureDto productStructureDto){
         return R.ok(productStructureService.addProductStructureDto(productStructureDto));
     }
-    @ApiOperation("鍒犻櫎浜у搧缁撴瀯")
-    @DeleteMapping("/{ids}")
-    public R delete(@PathVariable("ids") Long[] ids){
-        return R.ok(productStructureService.removeBatchByIds(Arrays.asList(ids)));
-    }
 }
diff --git a/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java b/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
index 806b75c..24b783c 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
@@ -11,8 +11,8 @@
 
     @ApiModelProperty(value = "宸ヨ壓鍚嶇О")
     private String processName;
-    @ApiModelProperty(value = "鐢熶骇鐐掓満")
-    private String speculativeTradingName;
+    @ApiModelProperty(value = "浜у搧鍚嶇О")
+    private String productName;
     @ApiModelProperty(value = "浜у搧id")
     private Long productId;
 
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductStructure.java b/src/main/java/com/ruoyi/production/pojo/ProductStructure.java
index f66536b..8a53b2e 100644
--- a/src/main/java/com/ruoyi/production/pojo/ProductStructure.java
+++ b/src/main/java/com/ruoyi/production/pojo/ProductStructure.java
@@ -40,6 +40,11 @@
     private String unit;
 
     /**
+     * 鐖剁骇id
+     */
+    private Long parentId;
+
+    /**
      * 鐩樻暟閲�
      */
     private BigDecimal diskQuantity;
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
index 0429b9b..8772531 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -28,7 +28,10 @@
 
     @Override
     public Boolean addProductStructureDto(ProductStructureDto productStructureDto) {
-        this.remove(new QueryWrapper<ProductStructure>().lambda().eq(ProductStructure::getProductModelId, productStructureDto.getProductModelId()));
+        this.remove(new QueryWrapper<ProductStructure>().lambda().eq(ProductStructure::getParentId, productStructureDto.getParentId()));
+        productStructureDto.getProductStructureList().forEach(productStructure -> {
+            productStructure.setParentId(productStructureDto.getParentId());
+        });
         return this.saveBatch(productStructureDto.getProductStructureList());
     }
 }
diff --git a/src/main/resources/mapper/production/ProductStructureMapper.xml b/src/main/resources/mapper/production/ProductStructureMapper.xml
index 255173e..df5a966 100644
--- a/src/main/resources/mapper/production/ProductStructureMapper.xml
+++ b/src/main/resources/mapper/production/ProductStructureMapper.xml
@@ -15,15 +15,16 @@
 
     <select id="listByproductModelId" resultType="com.ruoyi.production.dto.ProductStructureDto">
         select ps.*,
-        pm.speculative_trading_name ,
-        pp.name as  process_name,
-        pm.product_id,
-        pm.model
+               p.product_name,
+               pp.name as  process_name,
+               pm.product_id,
+               pm.model
         from
-        product_structure ps
-        left join product_model pm on ps.product_model_id = pm.id
-        left join product_process pp on ps.process_id = pp.id
-        where pm.id = #{productId}
+            product_structure ps
+                left join product_model pm on ps.product_model_id = pm.id
+                left join product p on pm.product_id = p.id
+                left join product_process pp on ps.process_id = pp.id
+        where ps.parent_id = #{productModelId}
         order by ps.id
     </select>
 </mapper>

--
Gitblit v1.9.3