From 4c33acfe648e9b008f91c5e2cf446550e6b0174d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 22 七月 2025 17:35:57 +0800
Subject: [PATCH] 1.正式库导出优化 2.销售导出 3.设备使用状态优化 4.定时任务优化

---
 main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java |   55 +++++++++++++++++++++++++++++++------------------------
 1 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java
index 5c2366c..fde6bd6 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java
@@ -85,7 +85,6 @@
             }
             return dto;
         }).toList();
-
         dtoPage.setRecords(dtoRecords);
         return dtoPage;
     }
@@ -125,46 +124,54 @@
 
             // 璁剧疆浣跨敤寮�濮嬫椂闂翠负褰撳墠鏃堕棿
             equipmentUsageRecord.setUsageStartTime(LocalDate.now());
-
-            // 濡傛灉鐘舵�佷负1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿
-            if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus())) {
-                equipmentUsageRecord.setUsageEndTime(LocalDate.now());
-            }
-
             return equipmentUsageRecordMapper.insert(equipmentUsageRecord);
-        }
-        // 鏇存柊璁板綍閫昏緫
-        else {
-            // 1. 鏌ヨ鍘熼鐢ㄨ褰�
+        } else {
+            // 缂栬緫璁板綍閫昏緫
             EquipmentUsageRecord originalRecord = equipmentUsageRecordMapper.selectById(equipmentUsageRecordDto.getId());
             if (originalRecord == null) {
                 throw new RuntimeException("棰嗙敤璁板綍涓嶅瓨鍦�");
             }
 
-            // 2. 璁$畻搴撳瓨鍙樺寲閲忥紙鏂版暟閲� - 鏃ф暟閲忥級
-            int quantityDelta = newUsageQuantity - originalRecord.getUsageQuantity();
+            // 澶勭悊褰掕繕閫昏緫
+            if (equipmentUsageRecordDto.getEquipmentStatus() == 2) {
+                // 妫�鏌ュ綊杩樻暟閲忔槸鍚﹀悎娉�
+                if (newUsageQuantity > originalRecord.getUsageQuantity()) {
+                    throw new RuntimeException("褰掕繕鏁伴噺涓嶈兘瓒呰繃鍘熼鐢ㄦ暟閲�");
+                }
 
-            if (quantityDelta != 0) {
-                // 3. 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻
-                int newInventory = equipment.getQuantity() - quantityDelta;
+                // 璁$畻瀹為檯褰掕繕鏁伴噺锛堝師棰嗙敤鏁伴噺 - 鏂伴鐢ㄦ暟閲忥級
+                int returnedQuantity = originalRecord.getUsageQuantity() - newUsageQuantity;
+
+                // 鎭㈠閮ㄥ垎搴撳瓨
+                equipment.setQuantity(equipment.getQuantity() + returnedQuantity);
+                equipmentManagementMapper.updateById(equipment);
+
+                // 濡傛灉鍏ㄩ儴褰掕繕锛岃缃綊杩樻椂闂�
+                if (newUsageQuantity == 0) {
+                    equipmentUsageRecord.setUsageEndTime(LocalDate.now());
+                }
+                return equipmentUsageRecordMapper.updateById(equipmentUsageRecord);
+            }
+
+            // 澶勭悊鏅�氱紪杈戦�昏緫锛堥潪褰掕繕鐘舵�侊級
+            if (!newUsageQuantity.equals(originalRecord.getUsageQuantity())) {
+                // 璁$畻搴撳瓨鍙樺寲閲忥紙鏃ф暟閲� - 鏂版暟閲忥級
+                int quantityDelta = originalRecord.getUsageQuantity() - newUsageQuantity;
+
+                // 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻
+                int newInventory = equipment.getQuantity() + quantityDelta;
                 if (newInventory < 0) {
                     throw new RuntimeException("搴撳瓨涓嶈冻锛岃皟鏁村悗搴撳瓨灏嗕负锛�" + newInventory);
                 }
 
-                // 4. 璋冩暣搴撳瓨
+                // 璋冩暣搴撳瓨
                 equipment.setQuantity(newInventory);
                 if (equipmentManagementMapper.updateById(equipment) == 0) {
                     throw new RuntimeException("搴撳瓨鏇存柊澶辫触锛屽彲鑳藉凡琚叾浠栨搷浣滀慨鏀�");
                 }
             }
 
-            // 5. 濡傛灉鐘舵�佸彉涓�1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿涓哄綋鍓嶆椂闂�
-            if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus()) &&
-                    (originalRecord.getEquipmentStatus() == null || !"1".equals(originalRecord.getEquipmentStatus()))) {
-                equipmentUsageRecord.setUsageEndTime(LocalDate.now());
-            }
-
-            // 6. 鏇存柊棰嗙敤璁板綍
+            // 鏇存柊棰嗙敤璁板綍
             return equipmentUsageRecordMapper.updateById(equipmentUsageRecord);
         }
     }

--
Gitblit v1.9.3