From d6567e4340d00bce1d448c26d5f5700bde90e211 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 03 七月 2025 13:46:01 +0800
Subject: [PATCH] 质量管理模块完成

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java      |  109 ++++
 src/main/java/com/ruoyi/quality/pojo/QualityInspectFile.java                     |   61 ++
 src/main/resources/mapper/quality/QualityInspectParamMapper.xml                  |    4 
 src/main/java/com/ruoyi/quality/service/IQualityUnqualifiedService.java          |   17 
 src/main/java/com/ruoyi/quality/mapper/QualityUnqualifiedMapper.java             |   20 
 src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml                   |   36 +
 src/main/java/com/ruoyi/quality/mapper/QualityTestStandardMapper.java            |   21 
 src/main/java/com/ruoyi/quality/mapper/QualityInspectMapper.java                 |   20 
 src/main/java/com/ruoyi/quality/mapper/QualityInspectFileMapper.java             |   16 
 src/main/java/com/ruoyi/quality/service/IQualityTestStandardService.java         |   17 
 src/main/java/com/ruoyi/quality/mapper/QualityInspectParamMapper.java            |   12 
 src/main/java/com/ruoyi/quality/controller/QualityInspectParamController.java    |   68 ++
 src/main/java/com/ruoyi/quality/service/IQualityInspectFileService.java          |   13 
 src/main/resources/mapper/quality/QualityTestStandardMapper.xml                  |   24 
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectFileServiceImpl.java  |   27 +
 src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java                     |  131 +++++
 src/main/java/com/ruoyi/quality/controller/QualityTestStandardController.java    |   93 +++
 src/main/java/com/ruoyi/quality/service/IQualityInspectService.java              |   23 
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectParamServiceImpl.java |   27 +
 src/main/java/com/ruoyi/quality/pojo/QualityInspect.java                         |  134 +++++
 src/main/resources/mapper/quality/QualityInspectMapper.xml                       |   42 +
 src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java     |   69 ++
 src/main/java/com/ruoyi/quality/controller/QualityInspectController.java         |  110 ++++
 src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java     |   92 +++
 src/main/java/com/ruoyi/quality/service/IQualityInspectParamService.java         |   13 
 src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java  |   38 +
 src/main/java/com/ruoyi/quality/pojo/QualityTestStandard.java                    |   84 +++
 src/main/java/com/ruoyi/quality/pojo/QualityInspectParam.java                    |   88 +++
 src/main/resources/mapper/quality/QualityInspectFileMapper.xml                   |    9 
 src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardServiceImpl.java |   40 +
 30 files changed, 1,458 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
new file mode 100644
index 0000000..717044e
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -0,0 +1,110 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鍘熸潗鏂欐楠�/杩囩▼妫�楠�/鍑哄巶妫�楠�
+ */
+@RestController
+@RequestMapping("/quality/qualityInspect")
+public class QualityInspectController {
+
+    @Resource
+    private IQualityInspectService qualityInspectService;
+
+    @Resource
+    private IQualityInspectParamService qualityInspectParamService;
+
+    @Resource
+    private IQualityInspectFileService qualityInspectFileService;
+
+
+    /**
+     * 鏂板
+     * @param qualityInspect
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody QualityInspect qualityInspect) {
+        return AjaxResult.success(qualityInspectService.add(qualityInspect));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityInspect(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠屽弬鏁�
+        qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery()
+        .in(QualityInspectParam::getInspectId,ids));
+        //鍒犻櫎妫�楠岄檮浠�
+        qualityInspectFileService.remove(Wrappers.<QualityInspectFile>lambdaQuery()
+        .in(QualityInspectFile::getInspectId,ids));
+        //鍒犻櫎妫�楠屽崟
+        return AjaxResult.success(qualityInspectService.removeBatchByIds(ids));
+    }
+
+    /**
+     * 璇︽儏
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult QualityInspectDetail(@PathVariable("id") Integer id) {
+        return AjaxResult.success(qualityInspectService.getById(id));
+    }
+
+    /**
+     * 淇敼
+     * @param qualityInspect
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody QualityInspect qualityInspect) {
+        return AjaxResult.success(qualityInspectService.updateQualityInspect(qualityInspect));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param qualityInspect
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult qualityInspectListPage(Page page, QualityInspect qualityInspect) {
+        return AjaxResult.success(qualityInspectService.qualityInspectListPage(page, qualityInspect));
+    }
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     * @param qualityInspect
+     */
+    @PostMapping("/export")
+    public void qualityInspectExport(HttpServletResponse response,QualityInspect qualityInspect) {
+        qualityInspectService.qualityInspectExport(response, qualityInspect);
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java
new file mode 100644
index 0000000..4428fd7
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectFileController.java
@@ -0,0 +1,69 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 妫�楠岄檮浠�
+ */
+@RestController
+@RequestMapping("/quality/qualityInspectFile")
+public class QualityInspectFileController {
+
+
+    @Resource
+    private IQualityInspectFileService qualityInspectFileService;
+
+
+    /**
+     * 鏂板
+     * @param qualityInspectFile
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody QualityInspectFile qualityInspectFile) {
+        return AjaxResult.success(qualityInspectFileService.save(qualityInspectFile));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        //鍒犻櫎妫�楠岄檮浠�
+        return AjaxResult.success(qualityInspectFileService.removeBatchByIds(ids));
+    }
+
+    /**
+     *鍒嗛〉鏌ヨ
+     * @param page
+     * @param qualityInspectFile
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult qualityInspectFileListPage(Page page, QualityInspectFile qualityInspectFile) {
+        return AjaxResult.success(qualityInspectFileService.qualityInspectFileListPage(page, qualityInspectFile));
+    }
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectParamController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectParamController.java
new file mode 100644
index 0000000..a089999
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectParamController.java
@@ -0,0 +1,68 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 妫�楠屽弬鏁伴」
+ */
+@RestController
+@RequestMapping("/quality/qualityInspectParam")
+public class QualityInspectParamController {
+
+    @Resource
+    private IQualityInspectParamService qualityInspectParamService;
+
+    /**
+     * 璇︽儏
+     * @param inspectId
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult QualityInspectParamDetail(@PathVariable("inspectId") Integer inspectId) {
+        return AjaxResult.success(qualityInspectParamService.qualityInspectParamDetail(inspectId));
+    }
+
+
+    /**
+     * 淇敼
+     * @param qualityInspectParams
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody List<QualityInspectParam> qualityInspectParams) {
+        return AjaxResult.success(qualityInspectParamService.updateBatchById(qualityInspectParams));
+    }
+
+    /**
+     * 鍒犻櫎
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        return AjaxResult.success(qualityInspectParamService.removeBatchByIds(ids));
+    }
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityTestStandardController.java b/src/main/java/com/ruoyi/quality/controller/QualityTestStandardController.java
new file mode 100644
index 0000000..47701e2
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/QualityTestStandardController.java
@@ -0,0 +1,93 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.service.IQualityTestStandardService;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import com.ruoyi.staff.service.IStaffOnJobService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 妫�娴嬫寚鏍囩淮鎶�
+ */
+@RestController
+@RequestMapping("/quality/qualityTestStandard")
+public class QualityTestStandardController {
+
+    @Resource
+    private IQualityTestStandardService qualityTestStandardService;
+
+
+    /**
+     * 鏂板妫�娴嬫寚鏍囩淮鎶�
+     * @param qualityTestStandard
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody QualityTestStandard qualityTestStandard) {
+        return AjaxResult.success(qualityTestStandardService.save(qualityTestStandard));
+    }
+
+    /**
+     * 鍒犻櫎妫�娴嬫寚鏍囩淮鎶�
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityTestStandard(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        return AjaxResult.success(qualityTestStandardService.removeBatchByIds(ids));
+    }
+
+    /**
+     * 妫�娴嬫寚鏍囩淮鎶よ鎯�
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult QualityTestStandardDetail(@PathVariable("id") Integer id) {
+        return AjaxResult.success(qualityTestStandardService.getById(id));
+    }
+
+    /**
+     * 妫�娴嬫寚鏍囩淮鎶や慨鏀�
+     * @param qualityTestStandard
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody QualityTestStandard qualityTestStandard) {
+        return AjaxResult.success(qualityTestStandardService.updateById(qualityTestStandard));
+    }
+
+    /**
+     *妫�娴嬫寚鏍囩淮鎶ゅ垎椤垫煡璇�
+     * @param page
+     * @param qualityTestStandard
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult qualityTestStandardListPage(Page page, QualityTestStandard qualityTestStandard) {
+        return AjaxResult.success(qualityTestStandardService.qualityTestStandardListPage(page, qualityTestStandard));
+    }
+
+    /**
+     * 妫�娴嬫寚鏍囩淮鎶ゅ鍑�
+     * @param response
+     * @param qualityTestStandard
+     */
+    @PostMapping("/export")
+    public void qualityTestStandardListPageExport(HttpServletResponse response,QualityTestStandard qualityTestStandard) {
+        qualityTestStandardService.qualityTestStandardListPageExport(response, qualityTestStandard);
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
new file mode 100644
index 0000000..b1a5a1b
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -0,0 +1,92 @@
+package com.ruoyi.quality.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.quality.service.IQualityTestStandardService;
+import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 涓嶅悎鏍肩鐞�
+ */
+@RestController
+@RequestMapping("/quality/qualityUnqualified")
+public class QualityUnqualifiedController {
+
+    @Resource
+    private IQualityUnqualifiedService qualityUnqualifiedService;
+
+
+    /**
+     * 鏂板涓嶅悎鏍肩鐞�
+     * @param qualityUnqualified
+     * @return
+     */
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody QualityUnqualified qualityUnqualified) {
+        return AjaxResult.success(qualityUnqualifiedService.save(qualityUnqualified));
+    }
+
+    /**
+     * 鍒犻櫎涓嶅悎鏍肩鐞�
+     * @param ids
+     * @return
+     */
+    @DeleteMapping("/del")
+    public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        return AjaxResult.success(qualityUnqualifiedService.removeBatchByIds(ids));
+    }
+
+    /**
+     * 涓嶅悎鏍肩鐞嗚鎯�
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    public AjaxResult QualityUnqualifiedDetail(@PathVariable("id") Integer id) {
+        return AjaxResult.success(qualityUnqualifiedService.getById(id));
+    }
+
+    /**
+     * 涓嶅悎鏍肩鐞嗕慨鏀�
+     * @param qualityUnqualified
+     * @return
+     */
+    @PostMapping("/update")
+    public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) {
+        return AjaxResult.success(qualityUnqualifiedService.updateById(qualityUnqualified));
+    }
+
+    /**
+     *涓嶅悎鏍肩鐞嗗垎椤垫煡璇�
+     * @param page
+     * @param qualityUnqualified
+     * @return
+     */
+    @GetMapping("/listPage")
+    public AjaxResult qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
+        return AjaxResult.success(qualityUnqualifiedService.qualityUnqualifiedListPage(page, qualityUnqualified));
+    }
+
+    /**
+     * 涓嶅悎鏍肩鐞嗗鍑�
+     * @param response
+     * @param qualityUnqualified
+     */
+    @PostMapping("/export")
+    public void qualityUnqualifiedExport(HttpServletResponse response,QualityUnqualified qualityUnqualified) {
+        qualityUnqualifiedService.qualityUnqualifiedExport(response, qualityUnqualified);
+    }
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/QualityInspectFileMapper.java b/src/main/java/com/ruoyi/quality/mapper/QualityInspectFileMapper.java
new file mode 100644
index 0000000..23099f8
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/QualityInspectFileMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.quality.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.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface QualityInspectFileMapper extends BaseMapper<QualityInspectFile> {
+
+
+    IPage<QualityInspectFile> qualityInspectFileListPage(Page page, @Param("qualityInspectFile") QualityInspectFile qualityInspectFile);
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/QualityInspectMapper.java b/src/main/java/com/ruoyi/quality/mapper/QualityInspectMapper.java
new file mode 100644
index 0000000..9d96578
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/QualityInspectMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.quality.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.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface QualityInspectMapper extends BaseMapper<QualityInspect> {
+
+
+    IPage<QualityInspect> qualityInspectListPage(Page page, @Param("qualityInspect") QualityInspect qualityInspect);
+
+    List<QualityInspect> qualityInspectExport(@Param("qualityInspect") QualityInspect qualityInspect);
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/QualityInspectParamMapper.java b/src/main/java/com/ruoyi/quality/mapper/QualityInspectParamMapper.java
new file mode 100644
index 0000000..de5cacc
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/QualityInspectParamMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.quality.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface QualityInspectParamMapper extends BaseMapper<QualityInspectParam> {
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/QualityTestStandardMapper.java b/src/main/java/com/ruoyi/quality/mapper/QualityTestStandardMapper.java
new file mode 100644
index 0000000..738845e
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/QualityTestStandardMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.quality.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.quality.pojo.QualityTestStandard;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface QualityTestStandardMapper extends BaseMapper<QualityTestStandard> {
+
+
+    IPage<QualityTestStandard> qualityTestStandardListPage(@Param("page") Page page, @Param("qualityTestStandard") QualityTestStandard qualityTestStandard);
+
+    List<QualityTestStandard> qualityTestStandardList(@Param("qualityTestStandard") QualityTestStandard qualityTestStandard);
+
+}
diff --git a/src/main/java/com/ruoyi/quality/mapper/QualityUnqualifiedMapper.java b/src/main/java/com/ruoyi/quality/mapper/QualityUnqualifiedMapper.java
new file mode 100644
index 0000000..82e2f6d
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/mapper/QualityUnqualifiedMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.quality.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.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityUnqualified;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface QualityUnqualifiedMapper extends BaseMapper<QualityUnqualified> {
+
+
+    IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, @Param("qualityUnqualified") QualityUnqualified qualityUnqualified);
+
+    List<QualityUnqualified> qualityUnqualifiedExport(@Param("qualityUnqualified") QualityUnqualified qualityUnqualified);
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
new file mode 100644
index 0000000..008752c
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspect.java
@@ -0,0 +1,134 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璐ㄩ噺绠$悊--鍘熸潗鏂�/杩囩▼/鍑哄巶妫�楠�
+ * quality_inspect
+ */
+@TableName(value = "quality_inspect")
+@Data
+public class QualityInspect implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 绫诲埆(0:鍘熸潗鏂欐楠�;1:杩囩▼妫�楠�;2:鍑哄巶妫�楠�)
+     */
+    @Excel(name = "绫诲埆",readConverterExp = "0=鍘熸潗鏂欐楠�,1=杩囩▼妫�楠�,2=鍑哄巶妫�楠�")
+    @NotBlank(message = "绫诲埆涓嶈兘涓虹┖!!")
+    private Integer inspectType;
+
+    /**
+     * 妫�娴嬫棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "妫�娴嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date checkTime;
+
+
+    /**
+     * 渚涘簲鍟嗗悕绉�(鍘熸潗鏂欐楠�)
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplier;
+
+    /**
+     * 瀹㈡埛鍚嶇О(杩囩▼妫�楠�/鍑哄巶妫�楠�)
+     */
+    @Excel(name = "瀹㈡埛鍚嶇О")
+    private String customer;
+
+    /**
+     * 宸ュ簭(杩囩▼妫�楠�)
+     */
+    @Excel(name = "宸ュ簭")
+    private String process;
+
+    /**
+     * 妫�楠屽憳
+     */
+    @Excel(name = "妫�楠屽憳")
+    private String checkName;
+
+    /**
+     * 鍏宠仈浜у搧id
+     */
+    @NotBlank(message = "浜у搧id涓嶈兘涓虹┖")
+    private Long productId;
+
+    /**
+     * 浜у搧鍚嶇О
+     */
+    @Excel(name = "浜у搧鍚嶇О")
+    private String productName;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String model;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    @Excel(name = "鏁伴噺")
+    private BigDecimal quantity;
+
+    /**
+     * 妫�娴嬪崟浣�
+     */
+    @Excel(name = "妫�娴嬪崟浣�")
+    private String checkCompany;
+
+    /**
+     * 妫�娴嬬粨鏋�
+     */
+    @Excel(name = "妫�娴嬬粨鏋�")
+    private String checkResult;
+
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspectFile.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspectFile.java
new file mode 100644
index 0000000..6ef6dd9
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspectFile.java
@@ -0,0 +1,61 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺绠$悊--妫�楠岄檮浠�
+ * quality_inspect_file
+ */
+@TableName(value = "quality_inspect_file")
+@Data
+public class QualityInspectFile implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鏂囦欢璺緞")
+    private String url;
+
+    @ApiModelProperty(value = "鏂囦欢澶у皬")
+    private int fileSize;
+
+    @ApiModelProperty(value = "妫�楠孖D")
+    @NotBlank(message = "妫�楠宨d涓嶈兘涓虹┖!")
+    private Long inspectId;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityInspectParam.java b/src/main/java/com/ruoyi/quality/pojo/QualityInspectParam.java
new file mode 100644
index 0000000..6d7bc97
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityInspectParam.java
@@ -0,0 +1,88 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * '璐ㄩ噺绠$悊--妫�楠岃褰�
+ * quality_inspect_param
+ */
+@TableName(value = "quality_inspect_param")
+@Data
+public class QualityInspectParam implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 鎸囨爣
+     */
+    @Excel(name = "鎸囨爣")
+    private String parameterItem;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏍囧噯鍊�
+     */
+    @Excel(name = "鏍囧噯鍊�")
+    private String standardValue;
+
+    /**
+     * 鍐呮帶鍊�
+     */
+    @Excel(name = "鍐呮帶鍊�")
+    private String controlValue;
+
+    /**
+     * 妫�楠屽��
+     */
+    @Excel(name = "妫�楠屽��")
+    private String testValue;
+
+    /**
+     * 妫�楠孖D
+     */
+    @Excel(name = "妫�楠孖D")
+    @NotBlank(message = "妫�楠宨d涓嶈兘涓虹┖")
+    private Long inspectId;
+
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityTestStandard.java b/src/main/java/com/ruoyi/quality/pojo/QualityTestStandard.java
new file mode 100644
index 0000000..be5d472
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityTestStandard.java
@@ -0,0 +1,84 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璐ㄩ噺绠$悊--妫�娴嬫寚鏍囩淮鎶�
+ * quality_test_standard
+ */
+@TableName(value = "quality_test_standard")
+@Data
+public class QualityTestStandard implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 鎸囨爣
+     */
+    @Excel(name = "鎸囨爣")
+    private String parameterItem;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏍囧噯鍊�
+     */
+    @Excel(name = "鏍囧噯鍊�")
+    private String standardValue;
+
+    /**
+     * 鍐呮帶鍊�
+     */
+    @Excel(name = "鍐呮帶鍊�")
+    private String controlValue;
+
+    /**
+     * 鍏宠仈浜у搧id
+     */
+    @NotBlank(message = "浜у搧id涓嶈兘涓虹┖!")
+    @Excel(name = "鍏宠仈浜у搧id")
+    private Long productId;
+
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
new file mode 100644
index 0000000..e26d014
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
@@ -0,0 +1,131 @@
+package com.ruoyi.quality.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璐ㄩ噺绠$悊--涓嶅悎鏍煎搧绠$悊
+ * quality_unqualified
+ */
+@TableName(value = "quality_unqualified")
+@Data
+public class QualityUnqualified implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搴忓彿
+     */
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+
+
+    /**
+     * 绫诲埆(0:鍘熸潗鏂欐楠�;1:杩囩▼妫�楠�;2:鍑哄巶妫�楠�)
+     */
+    @NotBlank(message = "绫诲埆涓嶈兘涓虹┖!!!")
+    @Excel(name = "绫诲埆",readConverterExp = "0=鍘熸潗鏂欐楠�,1=杩囩▼妫�楠�,2=鍑哄巶妫�楠�")
+    private Integer inspectType;
+
+    /**
+     * 鐘舵��(0:寰呭鐞�;1:宸插鐞�)
+     */
+    @NotBlank(message = "鐘舵�佷笉鑳戒负绌�!!")
+    @Excel(name = "鐘舵��",readConverterExp = "0=寰呭鐞�,1=宸插鐞�")
+    private Integer inspectState;
+
+    /**
+     * 妫�娴嬫棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "妫�娴嬫棩鏈�", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date checkTime;
+
+    /**
+     * 妫�楠屽憳
+     */
+    @Excel(name = "妫�楠屽憳")
+    private String checkName;
+
+    /**
+     * 浜у搧鍚嶇О
+     */
+    @Excel(name = "浜у搧鍚嶇О")
+    private String productName;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String model;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    @Excel(name = "鏁伴噺")
+    private BigDecimal quantity;
+
+    /**
+     * 涓嶅悎鏍肩幇璞�
+     */
+    @Excel(name = "涓嶅悎鏍肩幇璞�")
+    private String defectivePhenomena;
+
+    /**
+     * 澶勭悊缁撴灉
+     */
+    @Excel(name = "澶勭悊缁撴灉")
+    private String dealResult;
+
+    /**
+     * 澶勭悊浜�
+     */
+    @Excel(name = "澶勭悊浜�")
+    private String dealName;
+
+    /**
+     * 澶勭悊鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "澶勭悊鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date dealTime;
+
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty(value = "淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "绉熸埛ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityInspectFileService.java b/src/main/java/com/ruoyi/quality/service/IQualityInspectFileService.java
new file mode 100644
index 0000000..cd1670a
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/IQualityInspectFileService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+
+public interface IQualityInspectFileService extends IService<QualityInspectFile> {
+
+
+    IPage<QualityInspectFile> qualityInspectFileListPage(Page page, QualityInspectFile qualityInspectFile);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityInspectParamService.java b/src/main/java/com/ruoyi/quality/service/IQualityInspectParamService.java
new file mode 100644
index 0000000..cf825de
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/IQualityInspectParamService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+
+import java.util.List;
+
+public interface IQualityInspectParamService extends IService<QualityInspectParam> {
+
+
+    List<QualityInspectParam> qualityInspectParamDetail(Integer inspectId);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java b/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
new file mode 100644
index 0000000..73396a4
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffOnJob;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+public interface IQualityInspectService extends IService<QualityInspect> {
+
+
+    int add(QualityInspect qualityInspect);
+
+    int updateQualityInspect(QualityInspect qualityInspect);
+
+    IPage<QualityInspect> qualityInspectListPage(Page page, QualityInspect qualityInspect);
+
+    void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityTestStandardService.java b/src/main/java/com/ruoyi/quality/service/IQualityTestStandardService.java
new file mode 100644
index 0000000..e6857e1
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/IQualityTestStandardService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+
+import javax.servlet.http.HttpServletResponse;
+
+public interface IQualityTestStandardService extends IService<QualityTestStandard> {
+
+
+    IPage<QualityTestStandard> qualityTestStandardListPage(Page page, QualityTestStandard qualityTestStandard);
+
+    void qualityTestStandardListPageExport(HttpServletResponse response, QualityTestStandard qualityTestStandard);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/IQualityUnqualifiedService.java b/src/main/java/com/ruoyi/quality/service/IQualityUnqualifiedService.java
new file mode 100644
index 0000000..3aed832
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/IQualityUnqualifiedService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.quality.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityUnqualified;
+
+import javax.servlet.http.HttpServletResponse;
+
+public interface IQualityUnqualifiedService extends IService<QualityUnqualified> {
+
+
+    IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified);
+
+    void qualityUnqualifiedExport(HttpServletResponse response, QualityUnqualified qualityUnqualified);
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectFileServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectFileServiceImpl.java
new file mode 100644
index 0000000..eea2365
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectFileServiceImpl.java
@@ -0,0 +1,27 @@
+package com.ruoyi.quality.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.quality.mapper.QualityInspectFileMapper;
+import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectFile;
+import com.ruoyi.quality.service.IQualityInspectFileService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import lombok.AllArgsConstructor;
+import org.springframework.security.core.parameters.P;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service
+public class QualityInspectFileServiceImpl extends ServiceImpl<QualityInspectFileMapper, QualityInspectFile> implements IQualityInspectFileService {
+
+    private QualityInspectFileMapper qualityInspectFileMapper;
+
+    @Override
+    public IPage<QualityInspectFile> qualityInspectFileListPage(Page page, QualityInspectFile qualityInspectFile) {
+        return qualityInspectFileMapper.qualityInspectFileListPage(page, qualityInspectFile);
+    }
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectParamServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectParamServiceImpl.java
new file mode 100644
index 0000000..fe2fd25
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectParamServiceImpl.java
@@ -0,0 +1,27 @@
+package com.ruoyi.quality.service.impl;
+
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.mapper.QualityInspectParamMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@AllArgsConstructor
+@Service
+public class QualityInspectParamServiceImpl extends ServiceImpl<QualityInspectParamMapper, QualityInspectParam>  implements IQualityInspectParamService {
+
+    private QualityInspectParamMapper qualityInspectParamMapper;
+
+    @Override
+    public List<QualityInspectParam> qualityInspectParamDetail(Integer inspectId) {
+        return qualityInspectParamMapper.selectList(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId,inspectId));
+    }
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
new file mode 100644
index 0000000..22055fc
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -0,0 +1,109 @@
+package com.ruoyi.quality.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.mapper.QualityInspectParamMapper;
+import com.ruoyi.quality.mapper.QualityTestStandardMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityInspectParam;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.service.IQualityInspectParamService;
+import com.ruoyi.quality.service.IQualityInspectService;
+import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
+import com.ruoyi.staff.mapper.StaffOnJobMapper;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import com.ruoyi.staff.pojo.StaffOnJob;
+import com.ruoyi.staff.service.IStaffOnJobService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@AllArgsConstructor
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class QualityInspectServiceImpl extends ServiceImpl<QualityInspectMapper, QualityInspect>  implements IQualityInspectService {
+
+    private QualityInspectMapper qualityInspectMapper;
+
+    private IQualityInspectParamService qualityInspectParamService;
+
+    private QualityTestStandardMapper qualityTestStandardMapper;
+
+    @Override
+    public int add(QualityInspect qualityInspect) {
+        String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
+        //鏍规嵁浜у搧id鏌ヨ鎸囨爣缁存姢瀵瑰簲鏂板妫�楠屽弬鏁�
+        List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.selectList(Wrappers.<QualityTestStandard>lambdaQuery()
+                .eq(QualityTestStandard::getProductId, qualityInspect.getProductId()));
+        if (qualityTestStandards.size()>0){
+            qualityInspectMapper.insert(qualityInspect);
+            List<QualityInspectParam> qualityInspectParams = qualityTestStandards.stream().map(qualityTestStandard -> {
+                QualityInspectParam qualityInspectParam = new QualityInspectParam();
+                BeanUtils.copyProperties(qualityTestStandard, qualityInspectParam,ignoreProperties);
+                qualityInspectParam.setInspectId(qualityInspect.getId());
+                return qualityInspectParam;
+            }).collect(Collectors.toList());
+            qualityInspectParamService.saveBatch(qualityInspectParams);
+        }else{
+            throw new BaseException("璇ヤ骇鍝佹病鏈夌淮鎶ゆ楠屾寚鏍�,璇锋鏌�!!!!!!!!");
+        }
+        return 0;
+    }
+
+    @Override
+    public int updateQualityInspect(QualityInspect qualityInspect) {
+        String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
+        //鍏堝垹闄ゆ墍鏈夋楠屽弬鏁板啀鏂板
+        qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery()
+                .eq(QualityInspectParam::getInspectId,qualityInspect.getId()));
+        //鏍规嵁浜у搧id鏌ヨ鎸囨爣缁存姢瀵瑰簲鏂板妫�楠屽弬鏁�
+        List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.selectList(Wrappers.<QualityTestStandard>lambdaQuery()
+                .eq(QualityTestStandard::getProductId, qualityInspect.getProductId()));
+        if (qualityTestStandards.size()>0){
+            List<QualityInspectParam> qualityInspectParams = qualityTestStandards.stream().map(qualityTestStandard -> {
+                QualityInspectParam qualityInspectParam = new QualityInspectParam();
+                BeanUtils.copyProperties(qualityTestStandard, qualityInspectParam,ignoreProperties);
+                qualityInspectParam.setInspectId(qualityInspect.getId());
+                return qualityInspectParam;
+            }).collect(Collectors.toList());
+            qualityInspectParamService.saveBatch(qualityInspectParams);
+        }else{
+            throw new BaseException("璇ヤ骇鍝佹病鏈夌淮鎶ゆ楠屾寚鏍�,璇锋鏌�!!!!!!!!");
+        }
+        return  qualityInspectMapper.updateById(qualityInspect);
+    }
+
+    @Override
+    public IPage<QualityInspect> qualityInspectListPage(Page page, QualityInspect qualityInspect) {
+        return qualityInspectMapper.qualityInspectListPage(page,qualityInspect);
+    }
+
+    @Override
+    public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) {
+        List<QualityInspect> qualityInspects =qualityInspectMapper.qualityInspectExport(qualityInspect);
+        ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class);
+        switch (qualityInspect.getInspectType()){
+            case 0:
+                util.exportExcel(response, qualityInspects, "鍘熸潗鏂欐楠屽鍑�");
+                break;
+            case  1:
+                util.exportExcel(response, qualityInspects, "杩囩▼妫�楠屽鍑�");
+                break;
+            case 2:
+                util.exportExcel(response, qualityInspects, "鍑哄巶妫�楠屽鍑�");
+                break;
+        }
+
+    }
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardServiceImpl.java
new file mode 100644
index 0000000..5c246bc
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardServiceImpl.java
@@ -0,0 +1,40 @@
+package com.ruoyi.quality.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.mapper.QualityTestStandardMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.service.IQualityInspectService;
+import com.ruoyi.quality.service.IQualityTestStandardService;
+import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
+import lombok.AllArgsConstructor;
+import org.springframework.security.core.parameters.P;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@AllArgsConstructor
+@Service
+public class QualityTestStandardServiceImpl extends ServiceImpl<QualityTestStandardMapper, QualityTestStandard>  implements IQualityTestStandardService {
+
+    private QualityTestStandardMapper qualityTestStandardMapper;
+
+
+    @Override
+    public IPage<QualityTestStandard> qualityTestStandardListPage(Page page, QualityTestStandard qualityTestStandard) {
+        return qualityTestStandardMapper.qualityTestStandardListPage(page,qualityTestStandard);
+    }
+
+    @Override
+    public void qualityTestStandardListPageExport(HttpServletResponse response, QualityTestStandard qualityTestStandard) {
+        List<QualityTestStandard> qualityTestStandards =qualityTestStandardMapper.qualityTestStandardList(qualityTestStandard);
+        ExcelUtil<QualityTestStandard> util = new ExcelUtil<QualityTestStandard>(QualityTestStandard.class);
+        util.exportExcel(response, qualityTestStandards, "妫�娴嬫寚鏍囧鍑�");
+    }
+}
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
new file mode 100644
index 0000000..a080dd3
--- /dev/null
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -0,0 +1,38 @@
+package com.ruoyi.quality.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.quality.mapper.QualityInspectMapper;
+import com.ruoyi.quality.mapper.QualityUnqualifiedMapper;
+import com.ruoyi.quality.pojo.QualityInspect;
+import com.ruoyi.quality.pojo.QualityTestStandard;
+import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.quality.service.IQualityInspectService;
+import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+@AllArgsConstructor
+@Service
+public class QualityUnqualifiedServiceImpl extends ServiceImpl<QualityUnqualifiedMapper, QualityUnqualified>  implements IQualityUnqualifiedService {
+
+    private QualityUnqualifiedMapper qualityUnqualifiedMapper;
+
+    @Override
+    public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
+        return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page,qualityUnqualified);
+    }
+
+    @Override
+    public void qualityUnqualifiedExport(HttpServletResponse response, QualityUnqualified qualityUnqualified) {
+        List<QualityUnqualified> qualityUnqualifieds =qualityUnqualifiedMapper.qualityUnqualifiedExport(qualityUnqualified);
+        ExcelUtil<QualityUnqualified> util = new ExcelUtil<QualityUnqualified>(QualityUnqualified.class);
+        util.exportExcel(response, qualityUnqualifieds, "涓嶅悎鏍肩鐞嗗鍑�");
+    }
+}
diff --git a/src/main/resources/mapper/quality/QualityInspectFileMapper.xml b/src/main/resources/mapper/quality/QualityInspectFileMapper.xml
new file mode 100644
index 0000000..6f4f68e
--- /dev/null
+++ b/src/main/resources/mapper/quality/QualityInspectFileMapper.xml
@@ -0,0 +1,9 @@
+<?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.QualityInspectFileMapper">
+    <select id="qualityInspectFileListPage" resultType="com.ruoyi.quality.pojo.QualityInspectFile">
+        select *
+        from quality_inspect_file
+        where inspect_id = #{qualityInspectFile.inspectId}
+    </select>
+</mapper>
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
new file mode 100644
index 0000000..f17aca8
--- /dev/null
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -0,0 +1,42 @@
+<?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.QualityInspectMapper">
+    <select id="qualityInspectListPage" resultType="com.ruoyi.quality.pojo.QualityInspect">
+        SELECT
+        *
+        FROM quality_inspect
+        where
+        inspect_type=#{qualityInspect.inspectType}
+        <if test="qualityInspect.supplier != null and qualityInspect.supplier != '' ">
+            AND supplier = #{qualityInspect.supplier}
+        </if>
+        <if test="qualityInspect.customer != null and qualityInspect.customer != '' ">
+            AND customer = #{qualityInspect.customer}
+        </if>
+        <if test="qualityInspect.process != null and qualityInspect.process != '' ">
+            AND process = #{qualityInspect.process}
+        </if>
+        <if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
+            AND product_name = #{qualityInspect.productName}
+        </if>
+    </select>
+    <select id="qualityInspectExport" resultType="com.ruoyi.quality.pojo.QualityInspect">
+        SELECT
+        *
+        FROM quality_inspect
+        where
+        inspect_type=#{qualityInspect.inspectType}
+        <if test="qualityInspect.supplier != null and qualityInspect.supplier != '' ">
+            AND supplier = #{qualityInspect.supplier}
+        </if>
+        <if test="qualityInspect.customer != null and qualityInspect.customer != '' ">
+            AND customer = #{qualityInspect.customer}
+        </if>
+        <if test="qualityInspect.process != null and qualityInspect.process != '' ">
+            AND process = #{qualityInspect.process}
+        </if>
+        <if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
+            AND product_name = #{qualityInspect.productName}
+        </if>
+    </select>
+</mapper>
diff --git a/src/main/resources/mapper/quality/QualityInspectParamMapper.xml b/src/main/resources/mapper/quality/QualityInspectParamMapper.xml
new file mode 100644
index 0000000..47cb5ff
--- /dev/null
+++ b/src/main/resources/mapper/quality/QualityInspectParamMapper.xml
@@ -0,0 +1,4 @@
+<?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.QualityInspectParamMapper">
+</mapper>
diff --git a/src/main/resources/mapper/quality/QualityTestStandardMapper.xml b/src/main/resources/mapper/quality/QualityTestStandardMapper.xml
new file mode 100644
index 0000000..96448f5
--- /dev/null
+++ b/src/main/resources/mapper/quality/QualityTestStandardMapper.xml
@@ -0,0 +1,24 @@
+<?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.QualityTestStandardMapper">
+    <select id="qualityTestStandardListPage" resultType="com.ruoyi.quality.pojo.QualityTestStandard">
+        SELECT
+        *
+        FROM quality_test_standard
+        where
+        1=1
+        <if test="qualityTestStandard.productId != null and qualityTestStandard.productId != '' ">
+            AND product_id = #{qualityTestStandard.productId}
+        </if>
+    </select>
+    <select id="qualityTestStandardList" resultType="com.ruoyi.quality.pojo.QualityTestStandard">
+        SELECT
+        *
+        FROM quality_test_standard
+        where
+        1=1
+        <if test="qualityTestStandard.productId != null and qualityTestStandard.productId != '' ">
+            AND product_id = #{qualityTestStandard.productId}
+        </if>
+    </select>
+</mapper>
diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
new file mode 100644
index 0000000..f4fb205
--- /dev/null
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -0,0 +1,36 @@
+<?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.QualityUnqualifiedMapper">
+    <select id="qualityUnqualifiedListPage" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+        SELECT
+        *
+        FROM quality_unqualified
+        where
+        1=1
+        <if test="qualityUnqualified.inspectType != null and qualityTestStandard.inspectType != '' ">
+            AND inspect_type = #{qualityUnqualified.inspectType}
+        </if>
+        <if test="qualityUnqualified.inspectState != null and qualityTestStandard.inspectState != '' ">
+            AND inspect_state = #{qualityUnqualified.inspectState}
+        </if>
+        <if test="qualityUnqualified.productName != null and qualityTestStandard.productName != '' ">
+            AND product_name = #{qualityUnqualified.productName}
+        </if>
+    </select>
+    <select id="qualityUnqualifiedExport" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
+        SELECT
+        *
+        FROM quality_unqualified
+        where
+        1=1
+        <if test="qualityUnqualified.inspectType != null and qualityTestStandard.inspectType != '' ">
+            AND inspect_type = #{qualityUnqualified.inspectType}
+        </if>
+        <if test="qualityUnqualified.inspectState != null and qualityTestStandard.inspectState != '' ">
+            AND inspect_state = #{qualityUnqualified.inspectState}
+        </if>
+        <if test="qualityUnqualified.productName != null and qualityTestStandard.productName != '' ">
+            AND product_name = #{qualityUnqualified.productName}
+        </if>
+    </select>
+</mapper>

--
Gitblit v1.9.3