From 47949da2850a5c09d33c2b3f711f3f442a011cc0 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 14 三月 2026 16:36:59 +0800
Subject: [PATCH] feat: 新增工序参数配置模块及CRUD接口

---
 src/main/resources/mapper/production/ProductProcessParameterMapper.xml                  |   39 +++++++
 src/main/java/com/ruoyi/production/service/ProductProcessParameterService.java          |   24 ++++
 src/main/java/com/ruoyi/production/service/impl/ProductProcessParameterServiceImpl.java |   45 +++++++++
 src/main/java/com/ruoyi/production/service/impl/ProductParameterServiceImpl.java        |    2 
 src/main/java/com/ruoyi/production/controller/ProductProcessParameterController.java    |   63 ++++++++++++
 src/main/java/com/ruoyi/production/dto/ProductProcessParameterDto.java                  |   11 ++
 src/main/java/com/ruoyi/production/mapper/ProductProcessParameterMapper.java            |   23 ++++
 src/main/java/com/ruoyi/production/pojo/ProductProcessParameter.java                    |   88 +++++++++++++++++
 8 files changed, 295 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductProcessParameterController.java b/src/main/java/com/ruoyi/production/controller/ProductProcessParameterController.java
new file mode 100644
index 0000000..87802c8
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductProcessParameterController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.production.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.production.dto.ProductProcessParameterDto;
+import com.ruoyi.production.pojo.ProductProcessParameter;
+import com.ruoyi.production.service.ProductProcessParameterService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 宸ュ簭鍙傛暟琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-14 03:45:15
+ */
+@RestController
+@RequestMapping("/productProcessParameter")
+public class ProductProcessParameterController {
+
+    @Autowired
+    private ProductProcessParameterService productProcessParameterService;
+
+
+    @ApiOperation("宸ュ簭鐢熶骇璁板綍 鍒嗛〉鏌ヨ")
+    @GetMapping("listPage")
+    @Log(title = "宸ュ簭鐢熶骇璁板綍 鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult page(ProductProcessParameterDto productProcessParameter, Page<ProductProcessParameterDto> page) {
+        return AjaxResult.success(productProcessParameterService.pageProductProcessParameter(page, productProcessParameter));
+    }
+
+    @ApiOperation("宸ュ簭鐢熶骇璁板綍 鏂板澶氭潯")
+    @PostMapping("/addProductProcessParameter/{processId}")
+    @Log(title = "宸ュ簭鐢熶骇璁板綍 鏂板澶氭潯", businessType = BusinessType.INSERT)
+    public AjaxResult addProductProcessParameter(@RequestBody List<ProductProcessParameter> productProcessParameters, @PathVariable Long processId) {
+        productProcessParameterService.addProductProcessParameter(productProcessParameters, processId);
+        return AjaxResult.success();
+    }
+
+
+    @ApiOperation("宸ュ簭鐢熶骇璁板綍 淇敼")
+    @PutMapping("updProductProcessParameter")
+    @Log(title = "宸ュ簭鐢熶骇璁板綍 淇敼", businessType = BusinessType.UPDATE)
+    public AjaxResult updProductProcessParameter(@RequestBody ProductProcessParameterDto productProcessParameter) {
+        productProcessParameterService.updateById(productProcessParameter);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation("宸ュ簭鐢熶骇璁板綍 鍒犻櫎澶氭潯")
+    @DeleteMapping("/{ids}")
+    @Log(title = "宸ュ簭鐢熶骇璁板綍 鍒犻櫎澶氭潯", businessType = BusinessType.DELETE)
+    public AjaxResult delete(@PathVariable("ids") List<Long> ids) {
+        productProcessParameterService.removeBatchByIds(ids);
+        return AjaxResult.success();
+    }
+}
diff --git a/src/main/java/com/ruoyi/production/dto/ProductProcessParameterDto.java b/src/main/java/com/ruoyi/production/dto/ProductProcessParameterDto.java
new file mode 100644
index 0000000..b3c0f54
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/dto/ProductProcessParameterDto.java
@@ -0,0 +1,11 @@
+package com.ruoyi.production.dto;
+
+import com.ruoyi.production.pojo.ProductProcessParameter;
+
+/**
+ * @author yuan
+ * @date 2026-03-14 15:47
+ * @description
+ */
+public class ProductProcessParameterDto extends ProductProcessParameter {
+}
diff --git a/src/main/java/com/ruoyi/production/mapper/ProductProcessParameterMapper.java b/src/main/java/com/ruoyi/production/mapper/ProductProcessParameterMapper.java
new file mode 100644
index 0000000..d9fd4f9
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/mapper/ProductProcessParameterMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.production.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.production.dto.ProductProcessParameterDto;
+import com.ruoyi.production.pojo.ProductProcessParameter;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 宸ュ簭鍙傛暟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-14 03:45:15
+ */
+@Mapper
+public interface ProductProcessParameterMapper extends BaseMapper<ProductProcessParameter> {
+
+    IPage<ProductProcessParameterDto> pageProductProcessParameter(@Param("page") Page<ProductProcessParameterDto> page, @Param("productProcessParameter") ProductProcessParameterDto productProcessParameter);
+}
diff --git a/src/main/java/com/ruoyi/production/pojo/ProductProcessParameter.java b/src/main/java/com/ruoyi/production/pojo/ProductProcessParameter.java
new file mode 100644
index 0000000..2099b23
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/pojo/ProductProcessParameter.java
@@ -0,0 +1,88 @@
+package com.ruoyi.production.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * <p>
+ * 宸ュ簭鍙傛暟琛�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-14 03:45:15
+ */
+@Getter
+@Setter
+@TableName("product_process_parameter")
+@ApiModel(value = "ProductProcessParameter瀵硅薄", description = "宸ュ簭鍙傛暟琛�")
+public class ProductProcessParameter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("涓婚敭ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("鍙傛暟缂栫爜")
+    private String code;
+
+    @ApiModelProperty("宸ュ簭id")
+    private Long processId;
+
+    @ApiModelProperty("鍙傛暟椤�")
+    private String parameterItem;
+
+    @ApiModelProperty("鍙傛暟绫诲瀷锛�0锛氭暟瀛楁牸寮忥紝1锛氭枃鏈牸寮忥級")
+    private String type;
+
+    @ApiModelProperty("鍗曚綅")
+    private String unit;
+
+    @ApiModelProperty("鍙傛暟鏍煎紡")
+    private String parameterFormat;
+
+    @ApiModelProperty("瀛楀吀鍊�")
+    private String dict;
+
+    @ApiModelProperty("濉啓鍊�")
+    private String value;
+
+    @ApiModelProperty("鏄惁蹇呭~锛�0锛氬惁锛�1锛氭槸锛�")
+    private String isRequired;
+
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("鍒涘缓浜�")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("鏇存柊浜�")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateUser;
+
+    @ApiModelProperty("绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private String tenantId;
+}
diff --git a/src/main/java/com/ruoyi/production/service/ProductProcessParameterService.java b/src/main/java/com/ruoyi/production/service/ProductProcessParameterService.java
new file mode 100644
index 0000000..ca45b72
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/ProductProcessParameterService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.production.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.production.dto.ProductProcessParameterDto;
+import com.ruoyi.production.pojo.ProductProcessParameter;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 宸ュ簭鍙傛暟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-14 03:45:15
+ */
+public interface ProductProcessParameterService extends IService<ProductProcessParameter> {
+
+    IPage<ProductProcessParameterDto> pageProductProcessParameter(Page<ProductProcessParameterDto> page, ProductProcessParameterDto productProcessParameter);
+
+    void addProductProcessParameter(List<ProductProcessParameter> productProcessParameters, Long processId);
+}
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductParameterServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductParameterServiceImpl.java
index 61f8118..d491620 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductParameterServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductParameterServiceImpl.java
@@ -8,6 +8,7 @@
 import com.ruoyi.production.service.ProductParameterService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -26,6 +27,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addProductParameter(ProductParameterDto productParameter) {
         boolean save = this.save(productParameter);
         if (save) {
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessParameterServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessParameterServiceImpl.java
new file mode 100644
index 0000000..e5d4b90
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessParameterServiceImpl.java
@@ -0,0 +1,45 @@
+package com.ruoyi.production.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.production.dto.ProductProcessParameterDto;
+import com.ruoyi.production.pojo.ProductProcessParameter;
+import com.ruoyi.production.mapper.ProductProcessParameterMapper;
+import com.ruoyi.production.service.ProductProcessParameterService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 宸ュ簭鍙傛暟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-14 03:45:15
+ */
+@Service
+public class ProductProcessParameterServiceImpl extends ServiceImpl<ProductProcessParameterMapper, ProductProcessParameter> implements ProductProcessParameterService {
+
+    @Override
+    public IPage<ProductProcessParameterDto> pageProductProcessParameter(Page<ProductProcessParameterDto> page, ProductProcessParameterDto productProcessParameter) {
+        return baseMapper.pageProductProcessParameter(page, productProcessParameter);
+    }
+
+    @Override
+    @Transactional
+    public void addProductProcessParameter(List<ProductProcessParameter> productProcessParameters, Long processId) {
+        productProcessParameters.forEach(productProcessParameter -> {
+            productProcessParameter.setId(null);
+            productProcessParameter.setCreateTime(null);
+            productProcessParameter.setUpdateTime(null);
+            productProcessParameter.setCreateUser(null);
+            productProcessParameter.setUpdateUser(null);
+            productProcessParameter.setTenantId(null);
+            productProcessParameter.setProcessId(processId);
+        });
+        this.saveBatch(productProcessParameters);
+    }
+}
diff --git a/src/main/resources/mapper/production/ProductProcessParameterMapper.xml b/src/main/resources/mapper/production/ProductProcessParameterMapper.xml
new file mode 100644
index 0000000..57ab6b6
--- /dev/null
+++ b/src/main/resources/mapper/production/ProductProcessParameterMapper.xml
@@ -0,0 +1,39 @@
+<?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.ProductProcessParameterMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductProcessParameter">
+        <id column="id" property="id" />
+        <result column="process_id" property="processId" />
+        <result column="code" property="code" />
+        <result column="parameter_item" property="parameterItem" />
+        <result column="type" property="type" />
+        <result column="unit" property="unit" />
+        <result column="parameter_format" property="parameterFormat" />
+        <result column="dict" property="dict" />
+        <result column="value" property="value" />
+        <result column="is_required" property="isRequired" />
+        <result column="create_time" property="createTime" />
+        <result column="create_user" property="createUser" />
+        <result column="update_time" property="updateTime" />
+        <result column="update_user" property="updateUser" />
+        <result column="tenant_id" property="tenantId" />
+    </resultMap>
+    <select id="pageProductProcessParameter" resultType="com.ruoyi.production.dto.ProductProcessParameterDto">
+        SELECT
+            *
+        FROM product_process_parameter
+        WHERE 1=1
+        <if test="productProcessParameter.code != null and productProcessParameter.code != ''">
+            AND code LIKE concat('%',#{productProcessParameter.code},'%')
+        </if>
+        <if test="productProcessParameter.parameterItem != null and productProcessParameter.parameterItem != ''">
+            AND parameter_item LIKE concat('%',#{productProcessParameter.parameterItem},'%')
+        </if>
+        <if test="productProcessParameter.processId != null and productProcessParameter.processId != ''">
+            AND process_id = #{productProcessParameter.processId}
+        </if>
+    </select>
+
+</mapper>

--
Gitblit v1.9.3