From a217dbfc7378ff9cf5b6d3ca8b229a2b9d932e51 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 02 六月 2026 11:52:19 +0800
Subject: [PATCH] feat(device): 添加设备保养验收功能和年度定时任务支持

---
 src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java |   59 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
index 590700d..2842878 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -25,6 +25,7 @@
 import com.ruoyi.quality.pojo.QualityInspect;
 import com.ruoyi.quality.pojo.QualityInspectParam;
 import com.ruoyi.quality.pojo.QualityUnqualified;
+import com.ruoyi.quality.utils.QualityInspectTemplateExportHelper;
 import com.ruoyi.stock.pojo.StockInRecord;
 import com.ruoyi.stock.service.StockInRecordService;
 import com.ruoyi.quality.service.IQualityInspectParamService;
@@ -71,6 +72,8 @@
     private SalesLedgerProductMapper salesLedgerProductMapper;
 
     private ProcurementRecordService procurementRecordService;
+
+    private final QualityInspectTemplateExportHelper qualityInspectTemplateExportHelper;
 
     @Override
     public int add(QualityInspectDto qualityInspectDto) {
@@ -200,33 +203,11 @@
         if (!validResults.contains(request.getCheckResult())) {
             return R.fail("妫�娴嬬粨鏋滃繀椤讳负锛氬悎鏍笺�佷笉鍚堟牸銆侀儴鍒嗗悎鏍�");
         }
-        if (request.getQuantity() == null || request.getQuantity().compareTo(BigDecimal.ZERO) <= 0) {
-            return R.fail("鎬绘暟閲忓繀椤诲ぇ浜�0");
-        }
         if (request.getTestStandardId() == null) {
             return R.fail("鎸囨爣鏍囧噯ID涓嶈兘涓虹┖");
         }
-        // quantity = qualifiedQuantity + unqualifiedQuantity
-        BigDecimal qty = request.getQuantity();
-        BigDecimal qualified = request.getQualifiedQuantity() != null ? request.getQualifiedQuantity() : BigDecimal.ZERO;
-        BigDecimal unqualified = request.getUnqualifiedQuantity() != null ? request.getUnqualifiedQuantity() : BigDecimal.ZERO;
-        if (qty.compareTo(qualified.add(unqualified)) != 0) {
-            return R.fail("鎬绘暟閲忓繀椤荤瓑浜庡悎鏍兼暟閲忓姞涓嶅悎鏍兼暟閲�");
-        }
+
         String checkResult = request.getCheckResult();
-        if ("鍚堟牸".equals(checkResult)) {
-            if (qualified.compareTo(qty) != 0 || unqualified.compareTo(BigDecimal.ZERO) != 0) {
-                return R.fail("妫�楠岀粨鏋滀负鍚堟牸鏃讹紝鍚堟牸鏁伴噺搴旂瓑浜庢�绘暟閲忥紝涓嶅悎鏍兼暟閲忓簲涓�0");
-            }
-        } else if ("涓嶅悎鏍�".equals(checkResult)) {
-            if (qualified.compareTo(BigDecimal.ZERO) != 0 || unqualified.compareTo(qty) != 0) {
-                return R.fail("妫�楠岀粨鏋滀负涓嶅悎鏍兼椂锛屽悎鏍兼暟閲忓簲涓�0锛屼笉鍚堟牸鏁伴噺搴旂瓑浜庢�绘暟閲�");
-            }
-        } else {
-            if (qualified.compareTo(BigDecimal.ZERO) <= 0 || unqualified.compareTo(BigDecimal.ZERO) <= 0) {
-                return R.fail("妫�楠岀粨鏋滀负閮ㄥ垎鍚堟牸鏃讹紝鍚堟牸鏁伴噺鍜屼笉鍚堟牸鏁伴噺閮藉繀椤诲ぇ浜�0");
-            }
-        }
 
         // 瑙f瀽妫�娴嬫棩鏈�
         Date checkTimeDate = null;
@@ -239,8 +220,7 @@
 
         for (Long id : request.getIds()) {
             try {
-                // 浣跨敤鐙珛浜嬪姟澶勭悊姣忎釜妫�楠屽崟锛岄伩鍏嶅崟涓け璐ュ奖鍝嶆暣浣撲簨鍔�
-                processSingleInspect(id, request, checkResult, qty, qualified, unqualified, checkTimeDate);
+                processSingleInspect(id, request, checkResult, checkTimeDate);
                 success++;
             } catch (Exception e) {
                 errors.add("妫�楠屽崟 " + id + " 澶勭悊澶辫触锛�" + e.getMessage());
@@ -256,12 +236,11 @@
 
     /**
      * 鍦ㄧ嫭绔嬩簨鍔′腑澶勭悊鍗曚釜妫�楠屽崟
+     * 鏁伴噺銆佸悎鏍兼暟閲忛粯璁や娇鐢ㄦ楠屽崟鑷韩鐨勬暟閲忥紝涓嶅悎鏍兼暟閲忎负0
      */
     @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
     public void processSingleInspect(Long id, BatchQuickInspectRequest request,
-                                     String checkResult, BigDecimal qty,
-                                     BigDecimal qualified, BigDecimal unqualified,
-                                     Date checkTimeDate) {
+                                     String checkResult, Date checkTimeDate) {
         QualityInspect qualityInspect = qualityInspectMapper.selectById(id);
         if (qualityInspect == null) {
             throw new RuntimeException("妫�楠屽崟涓嶅瓨鍦�");
@@ -269,6 +248,11 @@
         if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) {
             throw new RuntimeException("妫�楠屽崟宸叉彁浜�");
         }
+
+        // 鏁伴噺榛樿鍙栨楠屽崟鑷韩鐨勬暟閲忥紝涓嶅悎鏍兼暟閲忎负0
+        BigDecimal qty = qualityInspect.getQuantity() != null ? qualityInspect.getQuantity() : BigDecimal.ZERO;
+        BigDecimal qualified = qty;
+        BigDecimal unqualified = BigDecimal.ZERO;
 
         // 2. 鏇存柊妫�楠屽崟瀛楁
         qualityInspect.setCheckResult(checkResult);
@@ -463,5 +447,24 @@
 
     }
 
+    @Override
+    public void exportWeiLong(HttpServletResponse response, Long id) {
+        qualityInspectTemplateExportHelper.exportWeiLong(response, id);
+    }
+
+    @Override
+    public void exportBaiShi(HttpServletResponse response, Long id) {
+        qualityInspectTemplateExportHelper.exportBaiShi(response, id);
+    }
+
+    @Override
+    public void exportDaLi(HttpServletResponse response, Long id) {
+        qualityInspectTemplateExportHelper.exportDaLi(response, id);
+    }
+
+    @Override
+    public String analyzeTemplate(String templatePath) {
+        return qualityInspectTemplateExportHelper.analyzeTemplate(templatePath);
+    }
 
 }

--
Gitblit v1.9.3