From e978ceb872e250c3e42d0457f7601082a7ac1b05 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 13 三月 2026 17:57:52 +0800
Subject: [PATCH] 质量管理:增加原料相关功能
---
src/main/java/com/ruoyi/common/enums/RawMaterialInspectState.java | 35 +++
src/main/java/com/ruoyi/quality/service/impl/RawMaterialQualityInspectItemServiceImpl.java | 20 ++
src/main/java/com/ruoyi/quality/controller/RawMaterialQualityInspectItemController.java | 18 +
src/main/java/com/ruoyi/quality/pojo/RawMaterial.java | 65 ++++++
src/main/resources/mapper/quality/RawMaterialQualityInspectItemMapper.xml | 14 +
src/main/resources/mapper/quality/RawMaterialMapper.xml | 38 +++
doc/20260313_坤泰化工.sql | 27 ++
src/main/java/com/ruoyi/quality/pojo/RawMaterialQualityInspectItem.java | 47 ++++
src/main/java/com/ruoyi/quality/controller/RawMaterialController.java | 58 +++++
src/main/java/com/ruoyi/quality/mapper/RawMaterialQualityInspectItemMapper.java | 18 +
src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java | 70 +++++++
src/main/java/com/ruoyi/common/enums/RawMaterialCheckResult.java | 35 +++
src/main/java/com/ruoyi/common/enums/RawMaterialCheckType.java | 36 +++
src/main/java/com/ruoyi/quality/service/RawMaterialQualityInspectItemService.java | 16 +
src/main/java/com/ruoyi/quality/service/RawMaterialService.java | 22 ++
src/main/java/com/ruoyi/quality/dto/RawMaterialDto.java | 51 +++++
src/main/java/com/ruoyi/quality/mapper/RawMaterialMapper.java | 23 ++
17 files changed, 593 insertions(+), 0 deletions(-)
diff --git "a/doc/20260313_\345\235\244\346\263\260\345\214\226\345\267\245.sql" "b/doc/20260313_\345\235\244\346\263\260\345\214\226\345\267\245.sql"
new file mode 100644
index 0000000..3cfe25b
--- /dev/null
+++ "b/doc/20260313_\345\235\244\346\263\260\345\214\226\345\267\245.sql"
@@ -0,0 +1,27 @@
+#鍘熸枡琛�
+drop table if exists raw_material;
+create table raw_material
+(
+ id bigint auto_increment primary key,
+ product_model_id bigint not null default 0 comment '浜у搧鍨嬪彿id',
+ batch_no varchar(255) null comment '鎵规鍙�',
+ check_type tinyint null comment '妫�楠岀被鍨� 0鍏ュ満妫� 1杞﹂棿妫� 2鍑哄巶妫�',
+ check_result tinyint null comment '妫�楠岀粨鏋� 0鍚堟牸 1涓嶅悎鏍�',
+ inspect_state tinyint null comment '绫诲埆(0:鏈彁浜�;1:宸叉彁浜�)',
+ check_user_name varchar(255) null comment '妫�楠屽憳鍚嶇О',
+ check_time date null comment '妫�楠屾棩鏈�',
+ create_time datetime null comment '褰曞叆鏃堕棿',
+ update_time datetime null comment '鏇存柊鏃堕棿',
+ index idx_product_model_id (product_model_id)
+);
+
+drop table if exists raw_material_quality_inspect_item;
+create table raw_material_quality_inspect_item
+(
+ id bigint auto_increment primary key,
+ raw_material_id bigint not null default 0 comment '鍘熸枡id',
+ quality_inspect_item_id bigint not null default 0 comment '璐ㄩ噺妫�楠岄」id',
+ create_time datetime null comment '褰曞叆鏃堕棿',
+ update_time datetime null comment '鏇存柊鏃堕棿',
+ unique idx_raw_material_id_quality_inspect_item_id (raw_material_id, quality_inspect_item_id)
+);
diff --git a/src/main/java/com/ruoyi/common/enums/RawMaterialCheckResult.java b/src/main/java/com/ruoyi/common/enums/RawMaterialCheckResult.java
new file mode 100644
index 0000000..7f692e4
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/enums/RawMaterialCheckResult.java
@@ -0,0 +1,35 @@
+package com.ruoyi.common.enums;
+
+
+public enum RawMaterialCheckResult implements BaseEnum<Integer>{
+ RawMaterialCheckResultUnqualified(0, "涓嶅悎鏍�"),
+ RawMaterialCheckResultQualified(1, "鍚堟牸");
+
+ private final Integer value;
+ private final String label;
+
+ RawMaterialCheckResult(Integer value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public Integer getCode() {
+ return value;
+ }
+
+ public String getValue() {
+ return label;
+ }
+
+ /**
+ * 鏍规嵁鍊艰幏鍙栧搴旂殑鏋氫妇
+ */
+ public static RawMaterialCheckResult fromValue(Integer value) {
+ for (RawMaterialCheckResult type : values()) {
+ if (type.getValue().equals(value)) {
+ return type;
+ }
+ }
+ throw new IllegalArgumentException("鏈煡鐨� RawMaterialCheckResult 鍊�: " + value);
+ }
+}
diff --git a/src/main/java/com/ruoyi/common/enums/RawMaterialCheckType.java b/src/main/java/com/ruoyi/common/enums/RawMaterialCheckType.java
new file mode 100644
index 0000000..82792fa
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/enums/RawMaterialCheckType.java
@@ -0,0 +1,36 @@
+package com.ruoyi.common.enums;
+
+
+public enum RawMaterialCheckType implements BaseEnum<Integer>{
+ RawMaterialCheckTypeAdmission(0, "鍏ュ巶妫�"),
+ RawMaterialCheckTypeWorkshop(1, "杞﹂棿妫�"),
+ RawMaterialCheckTypeFinal(2, "鍑哄巶妫�");
+
+ private final Integer value;
+ private final String label;
+
+ RawMaterialCheckType(Integer value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public Integer getCode() {
+ return value;
+ }
+
+ public String getValue() {
+ return label;
+ }
+
+ /**
+ * 鏍规嵁鍊艰幏鍙栧搴旂殑鏋氫妇
+ */
+ public static RawMaterialCheckType fromValue(Integer value) {
+ for (RawMaterialCheckType type : values()) {
+ if (type.getValue().equals(value)) {
+ return type;
+ }
+ }
+ throw new IllegalArgumentException("鏈煡鐨� RawMaterialCheckType 鍊�: " + value);
+ }
+}
diff --git a/src/main/java/com/ruoyi/common/enums/RawMaterialInspectState.java b/src/main/java/com/ruoyi/common/enums/RawMaterialInspectState.java
new file mode 100644
index 0000000..5e711f3
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/enums/RawMaterialInspectState.java
@@ -0,0 +1,35 @@
+package com.ruoyi.common.enums;
+
+
+public enum RawMaterialInspectState implements BaseEnum<Integer>{
+ RawMaterialInspectStateUnsubmitted(0, "鏈彁浜�"),
+ RawMaterialInspectStateSubmitted(1, "宸叉彁浜�");
+
+ private final Integer value;
+ private final String label;
+
+ RawMaterialInspectState(Integer value, String label) {
+ this.value = value;
+ this.label = label;
+ }
+
+ public Integer getCode() {
+ return value;
+ }
+
+ public String getValue() {
+ return label;
+ }
+
+ /**
+ * 鏍规嵁鍊艰幏鍙栧搴旂殑鏋氫妇
+ */
+ public static RawMaterialInspectState fromValue(Integer value) {
+ for (RawMaterialInspectState type : values()) {
+ if (type.getValue().equals(value)) {
+ return type;
+ }
+ }
+ throw new IllegalArgumentException("鏈煡鐨� RawMaterialInspectState 鍊�: " + value);
+ }
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java b/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
new file mode 100644
index 0000000..d3e0a38
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/RawMaterialController.java
@@ -0,0 +1,58 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.dto.RawMaterialDto;
+import com.ruoyi.quality.service.RawMaterialService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 02:44:09
+ */
+@RestController
+@RequestMapping("/quality/rawMaterial")
+public class RawMaterialController {
+ @Resource
+ private RawMaterialService rawMaterialService;
+
+ /**
+ * 鍘熸枡鍒嗛〉鏌ヨ
+ */
+ @GetMapping("/listPage")
+ public AjaxResult listPage(Page page, RawMaterialDto rawMaterialDto) {
+ return AjaxResult.success(rawMaterialService.listPage(page, rawMaterialDto));
+ }
+
+
+ /**
+ * 鍘熸枡鏂板
+ */
+ @PostMapping("")
+ public AjaxResult add(@RequestBody RawMaterialDto rawMaterialDto) {
+ return AjaxResult.success(rawMaterialService.add(rawMaterialDto));
+ }
+
+ /**
+ * 鍘熸枡鏇存柊
+ */
+ @PutMapping("")
+ public AjaxResult update(@RequestBody RawMaterialDto rawMaterialDto) {
+ return AjaxResult.success(rawMaterialService.updateById(rawMaterialDto));
+ }
+
+ /**
+ * 鍘熸枡鍒犻櫎
+ */
+ @DeleteMapping("")
+ public AjaxResult delete(@RequestBody List<Integer> ids) {
+ return AjaxResult.success(rawMaterialService.removeByIds(ids));
+ }
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/RawMaterialQualityInspectItemController.java b/src/main/java/com/ruoyi/quality/controller/RawMaterialQualityInspectItemController.java
new file mode 100644
index 0000000..8f1df14
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/RawMaterialQualityInspectItemController.java
@@ -0,0 +1,18 @@
+package com.ruoyi.quality.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 04:51:44
+ */
+@RestController
+@RequestMapping("/rawMaterialQualityInspectItem")
+public class RawMaterialQualityInspectItemController {
+
+}
diff --git a/src/main/java/com/ruoyi/quality/dto/RawMaterialDto.java b/src/main/java/com/ruoyi/quality/dto/RawMaterialDto.java
new file mode 100644
index 0000000..d1c1224
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/dto/RawMaterialDto.java
@@ -0,0 +1,51 @@
+package com.ruoyi.quality.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.quality.pojo.RawMaterial;
+
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * 鍘熸枡DTO
+ */
+@Data
+@ApiModel(value = "RawMaterialDto", description = "鍘熸枡DTO")
+public class RawMaterialDto extends RawMaterial implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty("琛ㄥ崟鎼滅储鏃堕棿鑼冨洿锛氬紑濮嬫椂闂�")
+ private LocalDate entryDateStart;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ @ApiModelProperty("琛ㄥ崟鎼滅储鏃堕棿鑼冨洿锛氱粨鏉熸椂闂�")
+ private LocalDate entryDateEnd;
+
+ @ApiModelProperty("妫�楠岀被鍨� 0鍏ュ満妫� 1杞﹂棿妫� 2鍑哄巶妫�")
+ private String checkTypeText;
+
+ @ApiModelProperty("妫�楠岀粨鏋� 0鍚堟牸 1涓嶅悎鏍�")
+ private String checkResultText;
+
+ @ApiModelProperty("绫诲埆(0:鏈彁浜�;1:宸叉彁浜�)")
+ private String inspectStateText;
+
+ @ApiModelProperty("鍘熸枡妫�娴嬮」鍒楄〃ids")
+ private List<Long> qualityInspectItemIds;
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/RawMaterialMapper.java b/src/main/java/com/ruoyi/quality/mapper/RawMaterialMapper.java
new file mode 100644
index 0000000..54c8f8b
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/RawMaterialMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.quality.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.quality.dto.RawMaterialDto;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.RawMaterial;
+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-13 02:44:09
+ */
+@Mapper
+public interface RawMaterialMapper extends BaseMapper<RawMaterial> {
+ IPage<RawMaterialDto> listPage(Page page, @Param("params") RawMaterialDto rawMaterial);
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/RawMaterialQualityInspectItemMapper.java b/src/main/java/com/ruoyi/quality/mapper/RawMaterialQualityInspectItemMapper.java
new file mode 100644
index 0000000..b57faaf
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/RawMaterialQualityInspectItemMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.quality.mapper;
+
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 04:51:44
+ */
+@Mapper
+public interface RawMaterialQualityInspectItemMapper extends BaseMapper<RawMaterialQualityInspectItem> {
+
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/RawMaterial.java b/src/main/java/com/ruoyi/quality/pojo/RawMaterial.java
new file mode 100644
index 0000000..bb7f632
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/RawMaterial.java
@@ -0,0 +1,65 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 02:44:09
+ */
+@Getter
+@Setter
+@TableName("raw_material")
+@ApiModel(value = "鍘熸枡", description = "")
+public class RawMaterial implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("浜у搧鍨嬪彿id")
+ private Long productModelId;
+
+ @ApiModelProperty("鎵规鍙�")
+ private String batchNo;
+
+ @ApiModelProperty("妫�楠岀被鍨� 0鍏ュ満妫� 1杞﹂棿妫� 2鍑哄巶妫�")
+ private Integer checkType;
+
+ @ApiModelProperty("妫�楠岀粨鏋� 0鍚堟牸 1涓嶅悎鏍�")
+ private Integer checkResult;
+
+ @ApiModelProperty("绫诲埆(0:鏈彁浜�;1:宸叉彁浜�)")
+ private Integer inspectState;
+
+ @ApiModelProperty("妫�楠屽憳鍚嶇О")
+ private String checkUserName;
+
+ @ApiModelProperty("妫�楠屾棩鏈�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "妫�娴嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+ private LocalDate checkTime;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/RawMaterialQualityInspectItem.java b/src/main/java/com/ruoyi/quality/pojo/RawMaterialQualityInspectItem.java
new file mode 100644
index 0000000..d45162d
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/RawMaterialQualityInspectItem.java
@@ -0,0 +1,47 @@
+package com.ruoyi.quality.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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 04:51:44
+ */
+@Getter
+@Setter
+@TableName("raw_material_quality_inspect_item")
+@ApiModel(value = "RawMaterialQualityInspectItem瀵硅薄", description = "")
+public class RawMaterialQualityInspectItem implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("鍘熸枡id")
+ private Long rawMaterialId;
+
+ @ApiModelProperty("璐ㄩ噺妫�楠岄」id")
+ private Long qualityInspectItemId;
+
+ @ApiModelProperty("褰曞叆鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鏇存柊鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/src/main/java/com/ruoyi/quality/service/RawMaterialQualityInspectItemService.java b/src/main/java/com/ruoyi/quality/service/RawMaterialQualityInspectItemService.java
new file mode 100644
index 0000000..862acf7
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/RawMaterialQualityInspectItemService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.quality.service;
+
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 04:51:44
+ */
+public interface RawMaterialQualityInspectItemService extends IService<RawMaterialQualityInspectItem> {
+
+}
diff --git a/src/main/java/com/ruoyi/quality/service/RawMaterialService.java b/src/main/java/com/ruoyi/quality/service/RawMaterialService.java
new file mode 100644
index 0000000..bdbc216
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/RawMaterialService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.quality.dto.RawMaterialDto;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.RawMaterial;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 02:44:09
+ */
+public interface RawMaterialService extends IService<RawMaterial> {
+ IPage<RawMaterialDto> listPage(Page page, RawMaterialDto rawMaterialDto);
+
+ boolean add(RawMaterialDto rawMaterialDto);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/RawMaterialQualityInspectItemServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/RawMaterialQualityInspectItemServiceImpl.java
new file mode 100644
index 0000000..606106d
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/RawMaterialQualityInspectItemServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.quality.service.impl;
+
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
+import com.ruoyi.quality.mapper.RawMaterialQualityInspectItemMapper;
+import com.ruoyi.quality.service.RawMaterialQualityInspectItemService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 04:51:44
+ */
+@Service
+public class RawMaterialQualityInspectItemServiceImpl extends ServiceImpl<RawMaterialQualityInspectItemMapper, RawMaterialQualityInspectItem> implements RawMaterialQualityInspectItemService {
+
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java
new file mode 100644
index 0000000..555763c
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/RawMaterialServiceImpl.java
@@ -0,0 +1,70 @@
+package com.ruoyi.quality.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.collaborativeApproval.dto.DutyPlanDTO;
+import com.ruoyi.common.enums.RawMaterialCheckResult;
+import com.ruoyi.common.enums.RawMaterialCheckType;
+import com.ruoyi.common.enums.RawMaterialInspectState;
+import com.ruoyi.production.mapper.ProductProcessRouteMapper;
+import com.ruoyi.quality.dto.RawMaterialDto;
+import com.ruoyi.quality.mapper.RawMaterialQualityInspectItemMapper;
+import com.ruoyi.quality.pojo.RawMaterial;
+import com.ruoyi.quality.mapper.RawMaterialMapper;
+import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem;
+import com.ruoyi.quality.service.RawMaterialQualityInspectItemService;
+import com.ruoyi.quality.service.RawMaterialService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-03-13 02:44:09
+ */
+@AllArgsConstructor
+@Service
+public class RawMaterialServiceImpl extends ServiceImpl<RawMaterialMapper, RawMaterial> implements RawMaterialService {
+ private RawMaterialMapper rawMaterialMapper;
+
+ private RawMaterialQualityInspectItemService rawMaterialQualityInspectItemService;
+
+ @Override
+ public IPage<RawMaterialDto> listPage(Page page, RawMaterialDto rawMaterialDto) {
+ IPage<RawMaterialDto> rawMaterials = rawMaterialMapper.listPage(page, rawMaterialDto);
+ for (RawMaterialDto rawMaterial : rawMaterials.getRecords()) {
+ rawMaterial.setCheckTypeText(RawMaterialCheckType.fromValue(rawMaterial.getCheckType()).getValue());
+ rawMaterial.setCheckResultText(RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()).getValue());
+ rawMaterial.setInspectStateText(RawMaterialInspectState.fromValue(rawMaterial.getInspectState()).getValue());
+ }
+ return rawMaterials;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(RawMaterialDto rawMaterialDto) {
+ // 鏂板妫�娴嬮」鍏宠仈鍏崇郴
+ if (rawMaterialDto.getQualityInspectItemIds() != null && !rawMaterialDto.getQualityInspectItemIds().isEmpty()) {
+ List<RawMaterialQualityInspectItem> rawMaterialQualityInspectItems = rawMaterialDto.getQualityInspectItemIds().stream()
+ .map(id -> {
+ RawMaterialQualityInspectItem item = new RawMaterialQualityInspectItem();
+ item.setRawMaterialId(rawMaterialDto.getId());
+ item.setQualityInspectItemId(id);
+ return item;
+ })
+ .collect(Collectors.toList());
+ rawMaterialQualityInspectItemService.saveBatch(rawMaterialQualityInspectItems);
+ }
+ // 鏂板鍘熸枡
+ return rawMaterialMapper.insert(rawMaterialDto) > 0;
+ }
+}
diff --git a/src/main/resources/mapper/quality/RawMaterialMapper.xml b/src/main/resources/mapper/quality/RawMaterialMapper.xml
new file mode 100644
index 0000000..a5869d5
--- /dev/null
+++ b/src/main/resources/mapper/quality/RawMaterialMapper.xml
@@ -0,0 +1,38 @@
+<?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.quality.mapper.RawMaterialMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.quality.pojo.RawMaterial">
+ <id column="id" property="id" />
+ <result column="product_model_id" property="productModelId" />
+ <result column="batch_no" property="batchNo" />
+ <result column="check_type" property="checkType" />
+ <result column="check_result" property="checkResult" />
+ <result column="check_user_name" property="checkUserName" />
+ <result column="check_time" property="checkTime" />
+ </resultMap>
+
+ <select id="listPage" resultType="com.ruoyi.quality.dto.RawMaterialDto">
+ SELECT
+ rm.*,
+ p.product_name,
+ pm.model,
+ pm.unit
+ FROM raw_material rm
+ LEFT JOIN product_model pm ON rm.product_model_id = pm.id
+ LEFT JOIN product p ON p.id = pm.product_id
+ where
+ 1=1
+ <if test="params.checkType != null ">
+ AND rm.check_type = #{params.checkType}
+ </if>
+ <if test="params.entryDateStart != null and params.entryDateStart != '' ">
+ AND rm.check_time >= DATE_FORMAT(#{params.entryDateStart},'%Y-%m-%d')
+ </if>
+ <if test="params.entryDateEnd != null and params.entryDateEnd != '' ">
+ AND rm.check_time <= DATE_FORMAT(#{params.entryDateEnd},'%Y-%m-%d')
+ </if>
+ ORDER BY rm.check_time DESC
+ </select>
+</mapper>
diff --git a/src/main/resources/mapper/quality/RawMaterialQualityInspectItemMapper.xml b/src/main/resources/mapper/quality/RawMaterialQualityInspectItemMapper.xml
new file mode 100644
index 0000000..fb95a2c
--- /dev/null
+++ b/src/main/resources/mapper/quality/RawMaterialQualityInspectItemMapper.xml
@@ -0,0 +1,14 @@
+<?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.quality.mapper.RawMaterialQualityInspectItemMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.quality.pojo.RawMaterialQualityInspectItem">
+ <id column="id" property="id" />
+ <result column="raw_material_id" property="rawMaterialId" />
+ <result column="quality_inspect_item_id" property="qualityInspectItemId" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.9.3