From 53c0da6e44a01acf9d97bdc7abaf25e5984b92dc Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 13 七月 2026 14:39:57 +0800
Subject: [PATCH] 修改生产核算

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

diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index b1a5a1b..02c979a 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -1,16 +1,19 @@
 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.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.IQualityTestStandardService;
 import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -18,6 +21,7 @@
  */
 @RestController
 @RequestMapping("/quality/qualityUnqualified")
+@Tag(name = "涓嶅悎鏍肩鐞�")
 public class QualityUnqualifiedController {
 
     @Resource
@@ -30,8 +34,15 @@
      * @return
      */
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.save(qualityUnqualified));
+    @Operation(summary = "鏂板涓嶅悎鏍肩鐞�")
+    @Log(title = "鏂板涓嶅悎鏍肩鐞�", businessType = BusinessType.INSERT)
+    public R<?> add(@RequestBody QualityUnqualified qualityUnqualified) {
+        qualityUnqualified.setInspectState(0);
+        if (qualityUnqualified.getDealType() != null) {
+            qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
+        }
+        normalizeRepairWorkHour(qualityUnqualified);
+        return R.ok(qualityUnqualifiedService.save(qualityUnqualified));
     }
 
     /**
@@ -40,11 +51,15 @@
      * @return
      */
     @DeleteMapping("/del")
-    public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) {
-        if(CollectionUtils.isEmpty(ids)){
-            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
-        }
-        return AjaxResult.success(qualityUnqualifiedService.removeBatchByIds(ids));
+    @Operation(summary = "鍒犻櫎涓嶅悎鏍肩鐞�")
+    @Log(title = "鍒犻櫎涓嶅悎鏍肩鐞�", businessType = BusinessType.DELETE)
+    public R<?> delQualityUnqualified(@RequestBody List<Integer> ids) {
+       qualityUnqualifiedService.listByIds(ids).stream().forEach(qualityUnqualified -> {
+           if (qualityUnqualified.getInspectState()==1){
+               throw new RuntimeException("璇ヤ笉鍚堟牸鏁版嵁宸茬粡澶勭悊鏃犳硶鍒犻櫎!");
+           }
+       });
+        return R.ok(qualityUnqualifiedService.removeBatchByIds(ids));
     }
 
     /**
@@ -53,8 +68,10 @@
      * @return
      */
     @GetMapping("/{id}")
-    public AjaxResult QualityUnqualifiedDetail(@PathVariable("id") Integer id) {
-        return AjaxResult.success(qualityUnqualifiedService.getById(id));
+    @Operation(summary = "涓嶅悎鏍肩鐞嗚鎯�")
+    @Log(title = "涓嶅悎鏍肩鐞嗚鎯�", businessType = BusinessType.OTHER)
+    public R<?> QualityUnqualifiedDetail(@PathVariable("id") Integer id) {
+        return R.ok(qualityUnqualifiedService.getUnqualified(id));
     }
 
     /**
@@ -63,8 +80,14 @@
      * @return
      */
     @PostMapping("/update")
-    public AjaxResult update(@RequestBody QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.updateById(qualityUnqualified));
+    @Operation(summary = "涓嶅悎鏍肩鐞嗕慨鏀�")
+    @Log(title = "涓嶅悎鏍肩鐞嗕慨鏀�", businessType = BusinessType.UPDATE)
+    public R<?> update(@RequestBody QualityUnqualified qualityUnqualified) {
+        if (qualityUnqualified.getDealType() != null) {
+            qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
+        }
+        normalizeRepairWorkHour(qualityUnqualified);
+        return R.ok(qualityUnqualifiedService.updateById(qualityUnqualified));
     }
 
     /**
@@ -74,8 +97,10 @@
      * @return
      */
     @GetMapping("/listPage")
-    public AjaxResult qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
-        return AjaxResult.success(qualityUnqualifiedService.qualityUnqualifiedListPage(page, qualityUnqualified));
+    @Operation(summary = "涓嶅悎鏍肩鐞嗗垎椤垫煡璇�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗垎椤垫煡璇�", businessType = BusinessType.OTHER)
+    public R<?> qualityUnqualifiedListPage(Page page, QualityUnqualified qualityUnqualified) {
+        return R.ok(qualityUnqualifiedService.qualityUnqualifiedListPage(page, qualityUnqualified));
     }
 
     /**
@@ -84,9 +109,53 @@
      * @param qualityUnqualified
      */
     @PostMapping("/export")
+    @Operation(summary = "涓嶅悎鏍肩鐞嗗鍑�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗鍑�", businessType = BusinessType.EXPORT)
     public void qualityUnqualifiedExport(HttpServletResponse response,QualityUnqualified qualityUnqualified) {
         qualityUnqualifiedService.qualityUnqualifiedExport(response, qualityUnqualified);
     }
 
+    /**
+     * 涓嶅悎鏍肩鐞嗗鐞�
+     * @param qualityUnqualified
+     * @return
+     */
+    @PostMapping("/deal")
+    @Operation(summary = "涓嶅悎鏍肩鐞嗗鐞�")
+    @Log(title = "涓嶅悎鏍肩鐞嗗鐞�", businessType = BusinessType.OTHER)
+    public R<?> deal(@RequestBody QualityUnqualified qualityUnqualified) {
+        if (qualityUnqualified.getDealType() != null) {
+            qualityUnqualified.setDealResult(resolveDealResult(qualityUnqualified.getDealType()));
+        }
+        normalizeRepairWorkHour(qualityUnqualified);
+        return R.ok(qualityUnqualifiedService.deal(qualityUnqualified));
+    }
+
+    private String resolveDealResult(Integer dealType) {
+        if (dealType == null) {
+            return null;
+        }
+        return switch (dealType) {
+            case 0 -> "杞诲井杩斿伐";
+            case 1 -> "涓ラ噸杩斿伐";
+            case 2 -> "鎶ュ簾";
+            default -> null;
+        };
+    }
+
+    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