From 84e526c6870d7d0e8c28c3268a417bcde052e5cb Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 23 十二月 2025 11:44:41 +0800
Subject: [PATCH] feat(productStructure): 添加产品结构管理功能
---
src/main/java/com/ruoyi/production/service/ProductStructureService.java | 12 ++++
src/main/resources/mapper/production/ProductStructureMapper.xml | 16 +++++
src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java | 26 ++++++++
src/main/java/com/ruoyi/production/controller/ProductStructureController.java | 47 +++++++++++++++
src/main/java/com/ruoyi/production/dto/ProductStructureDto.java | 11 +++
src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java | 16 +++++
6 files changed, 128 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductStructureController.java b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
new file mode 100644
index 0000000..62d5fa9
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -0,0 +1,47 @@
+package com.ruoyi.production.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.production.dto.ProductStructureDto;
+import com.ruoyi.production.pojo.ProductStructure;
+import com.ruoyi.production.service.ProductStructureService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+
+@RequestMapping("productStructure")
+@RestController
+@Api(tags = "浜у搧缁撴瀯")
+public class ProductStructureController {
+ @Autowired
+ private ProductStructureService productStructureService;
+
+
+ @ApiOperation("鏍规嵁productId鏌ヨ")
+ @GetMapping("listByProductId")
+ public R listByProductId( Long productId){
+ return R.ok(productStructureService.listByProductId( productId));
+ }
+
+ @ApiOperation("鏂板浜у搧缁撴瀯")
+ @PostMapping()
+ public R add(ProductStructure productStructure){
+ return R.ok(productStructureService.save(productStructure));
+ }
+
+ @ApiOperation("淇敼浜у搧缁撴瀯")
+ @PutMapping()
+ public R update(ProductStructure productStructure){
+ return R.ok(productStructureService.updateById(productStructure));
+ }
+
+ @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
new file mode 100644
index 0000000..8faf1a8
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/ProductStructureDto.java
@@ -0,0 +1,11 @@
+package com.ruoyi.production.dto;
+
+import com.ruoyi.production.pojo.ProductStructure;
+import lombok.Data;
+
+@Data
+public class ProductStructureDto extends ProductStructure {
+
+ private String processName;
+ private String productName;
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
new file mode 100644
index 0000000..812ab37
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductStructureMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.production.dto.ProductStructureDto;
+import com.ruoyi.production.pojo.ProductStructure;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ProductStructureMapper extends BaseMapper<ProductStructure> {
+ List<ProductStructure> listByProductId(@Param("productId") Long productId);
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductStructureService.java b/src/main/java/com/ruoyi/production/service/ProductStructureService.java
new file mode 100644
index 0000000..4969d42
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductStructureService.java
@@ -0,0 +1,12 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.production.pojo.ProductStructure;
+
+import java.util.List;
+
+public interface ProductStructureService extends IService<ProductStructure> {
+
+
+ List<ProductStructure> listByProductId( Long productId);
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
new file mode 100644
index 0000000..35d0366
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductStructureServiceImpl.java
@@ -0,0 +1,26 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.mapper.ProductStructureMapper;
+import com.ruoyi.production.pojo.ProductStructure;
+import com.ruoyi.production.service.ProductStructureService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class ProductStructureServiceImpl extends ServiceImpl<ProductStructureMapper, ProductStructure> implements ProductStructureService {
+
+ @Autowired
+ private ProductStructureMapper productStructureMapper;
+
+ @Override
+ public List<ProductStructure> listByProductId(Long productId) {
+ return productStructureMapper.listByProductId( productId);
+ }
+}
diff --git a/src/main/resources/mapper/production/ProductStructureMapper.xml b/src/main/resources/mapper/production/ProductStructureMapper.xml
new file mode 100644
index 0000000..bf69ed9
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductStructureMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.production.mapper.ProductStructureMapper">
+
+
+ <select id="listByProductId" resultType="com.ruoyi.production.pojo.ProductStructure">
+ select ps.*,
+ p.product_name as product_name,
+ pp.name as process_name
+ from
+ product_structure ps
+ left join product p on ps.process_id = p.id
+ left join product_process pp on ps.process_id = pp.process_id
+ where p.id = #{productId}
+ </select>
+</mapper>
--
Gitblit v1.9.3