From c8fbeff3b07f96ffb4624dd64344ac00ec0c8ef8 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 18 七月 2025 11:03:47 +0800
Subject: [PATCH] 1.优化正式库 2.yml设置

---
 main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java |   35 +++++++++++++++++++++++++++++------
 1 files changed, 29 insertions(+), 6 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 7b78a37..5c2366c 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
@@ -20,6 +20,7 @@
 import lombok.RequiredArgsConstructor;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -66,7 +67,7 @@
         if (!userIds.isEmpty()) {
             List<SysUser> sysUsers = sysUserMapper.selectList(userIds);
             userMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, Function.identity()));
-        }else {
+        } else {
             userMap = new HashMap<>();
         }
         //鍖归厤鏁版嵁
@@ -92,6 +93,12 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addOrEditUsageRecord(EquipmentUsageRecordDto equipmentUsageRecordDto) {
+        // 鍙傛暟鏍¢獙
+        if (equipmentUsageRecordDto == null) {
+            throw new IllegalArgumentException("璁惧浣跨敤璁板綍鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        // 澶嶅埗灞炴�у埌瀹炰綋瀵硅薄
         EquipmentUsageRecord equipmentUsageRecord = new EquipmentUsageRecord();
         BeanUtils.copyProperties(equipmentUsageRecordDto, equipmentUsageRecord);
 
@@ -99,12 +106,13 @@
         Long equipmentId = equipmentUsageRecordDto.getEquipmentId();
         Integer newUsageQuantity = equipmentUsageRecordDto.getUsageQuantity();
 
-        // 鏌ヨ璁惧淇℃伅锛堝甫涔愯閿佺増鏈彿锛�
+        // 鏌ヨ璁惧淇℃伅
         EquipmentManagement equipment = equipmentManagementMapper.selectById(equipmentId);
         if (equipment == null) {
             throw new RuntimeException("璁惧涓嶅瓨鍦�");
         }
 
+        // 鏂板璁板綍閫昏緫
         if (Objects.isNull(equipmentUsageRecordDto.getId())) {
             // 妫�鏌ュ簱瀛樻槸鍚﹀厖瓒�
             if (equipment.getQuantity() < newUsageQuantity) {
@@ -115,9 +123,18 @@
             equipment.setQuantity(equipment.getQuantity() - newUsageQuantity);
             equipmentManagementMapper.updateById(equipment);
 
-            // 鍒涘缓棰嗙敤璁板綍
+            // 璁剧疆浣跨敤寮�濮嬫椂闂翠负褰撳墠鏃堕棿
+            equipmentUsageRecord.setUsageStartTime(LocalDate.now());
+
+            // 濡傛灉鐘舵�佷负1(宸插綊杩�)锛屽垯璁剧疆缁撴潫鏃堕棿
+            if ("1".equals(equipmentUsageRecordDto.getEquipmentStatus())) {
+                equipmentUsageRecord.setUsageEndTime(LocalDate.now());
+            }
+
             return equipmentUsageRecordMapper.insert(equipmentUsageRecord);
-        } else {
+        }
+        // 鏇存柊璁板綍閫昏緫
+        else {
             // 1. 鏌ヨ鍘熼鐢ㄨ褰�
             EquipmentUsageRecord originalRecord = equipmentUsageRecordMapper.selectById(equipmentUsageRecordDto.getId());
             if (originalRecord == null) {
@@ -128,7 +145,7 @@
             int quantityDelta = newUsageQuantity - originalRecord.getUsageQuantity();
 
             if (quantityDelta != 0) {
-                // 3. 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻锛堣�冭檻澧炲姞鍜屽噺灏戜袱绉嶆儏鍐碉級
+                // 3. 妫�鏌ヨ皟鏁村悗搴撳瓨鏄惁鍏呰冻
                 int newInventory = equipment.getQuantity() - quantityDelta;
                 if (newInventory < 0) {
                     throw new RuntimeException("搴撳瓨涓嶈冻锛岃皟鏁村悗搴撳瓨灏嗕负锛�" + newInventory);
@@ -141,7 +158,13 @@
                 }
             }
 
-            // 5. 鏇存柊棰嗙敤璁板綍
+            // 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