From 422a5676c2d96dd37c1be62935a314d70fef79b5 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 15 七月 2026 15:28:04 +0800
Subject: [PATCH] 修改不合格管理

---
 src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index 020841f..bdc4a9b 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -1,7 +1,10 @@
 package com.ruoyi.quality.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.quality.pojo.QualityUnqualified;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -32,8 +35,12 @@
      */
     @PostMapping("/add")
     @Operation(summary = "鏂板涓嶅悎鏍肩鐞�")
+    @Log(title = "鏂板涓嶅悎鏍肩鐞�", businessType = BusinessType.INSERT)
     public R<?> add(@RequestBody QualityUnqualified qualityUnqualified) {
         qualityUnqualified.setInspectState(0);
+        normalizeDealDecision(qualityUnqualified);
+        applyRegenerateNewOrderDefault(qualityUnqualified);
+        normalizeRepairWorkHour(qualityUnqualified);
         return R.ok(qualityUnqualifiedService.save(qualityUnqualified));
     }
 
@@ -44,6 +51,7 @@
      */
     @DeleteMapping("/del")
     @Operation(summary = "鍒犻櫎涓嶅悎鏍肩鐞�")
+    @Log(title = "鍒犻櫎涓嶅悎鏍肩鐞�", businessType = BusinessType.DELETE)
     public R<?> delQualityUnqualified(@RequestBody List<Integer> ids) {
        qualityUnqualifiedService.listByIds(ids).stream().forEach(qualityUnqualified -> {
            if (qualityUnqualified.getInspectState()==1){
@@ -60,6 +68,7 @@
      */
     @GetMapping("/{id}")
     @Operation(summary = "涓嶅悎鏍肩鐞嗚鎯�")
+    @Log(title = "涓嶅悎鏍肩鐞嗚鎯�", businessType = BusinessType.OTHER)
     public R<?> QualityUnqualifiedDetail(@PathVariable("id") Integer id) {
         return R.ok(qualityUnqualifiedService.getUnqualified(id));
     }
@@ -71,7 +80,11 @@
      */
     @PostMapping("/update")
     @Operation(summary = "涓嶅悎鏍肩鐞嗕慨鏀�")
+    @Log(title = "涓嶅悎鏍肩鐞嗕慨鏀�", businessType = BusinessType.UPDATE)
     public R<?> update(@RequestBody QualityUnqualified qualityUnqualified) {
+        normalizeDealDecision(qualityUnqualified);
+        applyRegenerateNewOrderDefault(qualityUnqualified);
+        normalizeRepairWorkHour(qualityUnqualified);
         return R.ok(qualityUnqualifiedService.updateById(qualityUnqualified));
     }
 
@@ -83,6 +96,7 @@
      */
     @GetMapping("/listPage")
     @Operation(summary = "涓嶅悎鏍肩鐞嗗垎椤垫煡璇�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗垎椤垫煡璇�", businessType = BusinessType.OTHER)
     public R<?> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
         return R.ok(qualityUnqualifiedService.qualityUnqualifiedListPage(page, qualityUnqualified));
     }
@@ -94,6 +108,7 @@
      */
     @PostMapping("/export")
     @Operation(summary = "涓嶅悎鏍肩鐞嗗鍑�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗鍑�", businessType = BusinessType.EXPORT)
     public void qualityUnqualifiedExport(HttpServletResponse response,QualityUnqualified qualityUnqualified) {
         qualityUnqualifiedService.qualityUnqualifiedExport(response, qualityUnqualified);
     }
@@ -105,9 +120,67 @@
      */
     @PostMapping("/deal")
     @Operation(summary = "涓嶅悎鏍肩鐞嗗鐞�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗鐞�", businessType = BusinessType.OTHER)
     public R<?> deal(@RequestBody QualityUnqualified qualityUnqualified) {
+        normalizeDealDecision(qualityUnqualified);
+        applyRegenerateNewOrderDefault(qualityUnqualified);
+        normalizeRepairWorkHour(qualityUnqualified);
         return R.ok(qualityUnqualifiedService.deal(qualityUnqualified));
     }
 
+    private void normalizeDealDecision(QualityUnqualified qualityUnqualified) {
+        if (qualityUnqualified == null) {
+            return;
+        }
+        String dealResult = qualityUnqualified.getDealResult();
+        Integer dealType = qualityUnqualified.getDealType();
+        if ("鎶ュ簾".equals(dealResult)) {
+            qualityUnqualified.setDealType(2);
+            return;
+        }
+        if ("鎶ュ伐".equals(dealResult)) {
+            if (dealType == null) {
+                throw new ServiceException("鎶ュ伐鏃跺繀椤婚�夋嫨涓嶅悎鏍肩被鍨�");
+            }
+            if (dealType == 2) {
+                qualityUnqualified.setDealResult("鎶ュ簾");
+            }
+            return;
+        }
+        if (dealType == null) {
+            return;
+        }
+        if (dealType == 2) {
+            qualityUnqualified.setDealResult("鎶ュ簾");
+        } else if (dealType == 0 || dealType == 1) {
+            qualityUnqualified.setDealResult("鎶ュ伐");
+        }
+    }
+
+    private void applyRegenerateNewOrderDefault(QualityUnqualified qualityUnqualified) {
+        if (qualityUnqualified == null || qualityUnqualified.getDealType() == null) {
+            return;
+        }
+        if (qualityUnqualified.getDealType() == 0) {
+            qualityUnqualified.setRegenerateNewOrder(0);
+        } else if (qualityUnqualified.getDealType() == 1 || qualityUnqualified.getDealType() == 2) {
+            qualityUnqualified.setRegenerateNewOrder(1);
+        }
+    }
+
+    private void normalizeRepairWorkHour(QualityUnqualified qualityUnqualified) {
+        if (qualityUnqualified == null || qualityUnqualified.getDealType() == null) {
+            return;
+        }
+        if (qualityUnqualified.getDealType() == 0) {
+            if (qualityUnqualified.getRepairWorkHour() == null
+                    || qualityUnqualified.getRepairWorkHour().compareTo(java.math.BigDecimal.ZERO) <= 0) {
+                throw new ServiceException("杞诲井杩斿伐蹇呴』濉啓澶т簬0鐨勪慨鐞嗗伐鏃�");
+            }
+        } else {
+            qualityUnqualified.setRepairWorkHour(java.math.BigDecimal.ZERO);
+        }
+    }
+
 
 }

--
Gitblit v1.9.3