From 6755992e9dc8bfab02738495e855ef6edd92fcfb Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 17 四月 2026 15:06:26 +0800
Subject: [PATCH] 不合格附件上传

---
 src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java    |   27 +++++++++++--
 src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java |   22 ++++++++++-
 src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java                    |   15 +++++++
 src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml                  |    4 ++
 src/main/java/com/ruoyi/common/enums/FileNameType.java                          |    3 +
 5 files changed, 64 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/enums/FileNameType.java b/src/main/java/com/ruoyi/common/enums/FileNameType.java
index 2deb5d6..09dd066 100644
--- a/src/main/java/com/ruoyi/common/enums/FileNameType.java
+++ b/src/main/java/com/ruoyi/common/enums/FileNameType.java
@@ -17,7 +17,8 @@
     INSPECTION_PRODUCTION_BEFORE(10),
     INSPECTION_PRODUCTION_AFTER(11),
     INSPECTION(12),//宸℃ 鐢熶骇鍓�
-    APP(13);
+    APP(13),
+    QUALITY_UQUALIFIED(14);//璐ㄩ噺 涓嶅悎鏍�
 
     private final int value;
 
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index e558c30..fea6b88 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -1,9 +1,14 @@
 package com.ruoyi.quality.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.other.service.impl.TempFileServiceImpl;
 import com.ruoyi.quality.pojo.QualityUnqualified;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import com.ruoyi.sales.service.ICommonFileService;
+import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,6 +26,12 @@
     @Resource
     private IQualityUnqualifiedService qualityUnqualifiedService;
 
+    @Autowired
+    private TempFileServiceImpl tempFileService;
+
+    @Autowired
+    private CommonFileServiceImpl commonFileService;
+
 
     /**
      * 鏂板涓嶅悎鏍肩鐞�
@@ -28,9 +39,12 @@
      * @return
      */
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody QualityUnqualified qualityUnqualified) {
+    public AjaxResult add(@RequestBody QualityUnqualified qualityUnqualified) throws Exception {
         qualityUnqualified.setInspectState(0);
-        return AjaxResult.success(qualityUnqualifiedService.save(qualityUnqualified));
+        qualityUnqualifiedService.save(qualityUnqualified);
+        // 闄勪欢缁戝畾
+        tempFileService.migrateTempFilesToFormal(qualityUnqualified.getId(), qualityUnqualified.getTempFileIds(), FileNameType.QUALITY_UQUALIFIED.getValue());
+        return AjaxResult.success();
     }
 
     /**
@@ -44,6 +58,8 @@
            if (qualityUnqualified.getInspectState()==1){
                throw new RuntimeException("璇ヤ笉鍚堟牸鏁版嵁宸茬粡澶勭悊鏃犳硶鍒犻櫎!");
            }
+           // 鍒犻櫎瀵瑰簲鐨勯檮浠�
+           commonFileService.deleteByBusinessId(qualityUnqualified.getId(), FileNameType.QUALITY_UQUALIFIED.getValue());
        });
         return AjaxResult.success(qualityUnqualifiedService.removeBatchByIds(ids));
     }
@@ -64,8 +80,11 @@
      * @return
      */
     @PostMapping("/update")
-    public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.updateById(qualityUnqualified));
+    public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) throws Exception {
+       qualityUnqualifiedService.updateById(qualityUnqualified);
+        // 闄勪欢缁戝畾
+        tempFileService.migrateTempFilesToFormal(qualityUnqualified.getId(), qualityUnqualified.getTempFileIds(), FileNameType.QUALITY_UQUALIFIED.getValue());
+        return AjaxResult.success();
     }
 
     /**
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
index ecfca49..313b66c 100644
--- a/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
@@ -4,6 +4,7 @@
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.dto.DateQueryDto;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.sales.pojo.CommonFile;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -12,6 +13,7 @@
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 璐ㄩ噺绠$悊--涓嶅悎鏍煎搧绠$悊
@@ -167,4 +169,17 @@
      */
     @Excel(name = "鏉愭枡璐规崯澶�")
     private String lossMaterial;
+
+
+    /**
+     * 涓存椂鏂囦欢id鍒楄〃
+     */
+    @TableField(exist = false)
+    private List<String> tempFileIds;
+
+    /**
+     * 姝e紡鏂囦欢id鍒楄〃
+     */
+    @TableField(exist = false)
+    private List<CommonFile> commonFileList;
 }
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index 1650690..c5a3007 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -1,12 +1,14 @@
 package com.ruoyi.quality.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 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.enums.FileNameType;
 import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockInUnQualifiedRecordTypeEnum;
@@ -24,8 +26,11 @@
 import com.ruoyi.quality.pojo.QualityUnqualified;
 import com.ruoyi.quality.service.IQualityInspectService;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.pojo.CommonFile;
 import com.ruoyi.stock.service.StockUninventoryService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
@@ -47,10 +52,18 @@
     private ProductProcessRouteItemMapper productProcessRouteItemMapper;
     private ProductWorkOrderMapper productWorkOrderMapper;
     private StockUninventoryService stockUninventoryService;
+    private CommonFileMapper commonFileMapper;
 
     @Override
     public IPage<QualityUnqualified> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
-        return qualityUnqualifiedMapper.qualityUnqualifiedListPage(page, qualityUnqualified);
+        IPage<QualityUnqualified> qualityUnqualifiedIPage = qualityUnqualifiedMapper.qualityUnqualifiedListPage(page, qualityUnqualified);
+        for (QualityUnqualified record : qualityUnqualifiedIPage.getRecords()) {
+            List<CommonFile> allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+                    .eq(CommonFile::getCommonId, record.getId())
+                    .eq(CommonFile::getType, FileNameType.QUALITY_UQUALIFIED.getValue()));
+            record.setCommonFileList(allFiles);
+        }
+        return qualityUnqualifiedIPage;
     }
 
     @Override
@@ -159,6 +172,11 @@
 
     @Override
     public QualityUnqualified getUnqualified(Integer id) {
-        return qualityUnqualifiedMapper.getUnqualified(id);
+        QualityUnqualified unqualified = qualityUnqualifiedMapper.getUnqualified(id);
+        List<CommonFile> allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+                .eq(CommonFile::getCommonId, unqualified.getId())
+                .eq(CommonFile::getType, FileNameType.QUALITY_UQUALIFIED.getValue()));
+        unqualified.setCommonFileList(allFiles);
+        return unqualified;
     }
 }
diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index 99f402d..47a17d3 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -79,6 +79,10 @@
             qu.deal_result,
             qu.deal_name,
             qu.deal_time,
+            qu.reason_analysis,
+            qu.preventive_corrective,
+            qu.loss_working,
+            qu.loss_material,
             CASE
                 WHEN qu.model = pm.id THEN pm.model
                 ELSE qu.model

--
Gitblit v1.9.3