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