From 2656ae9bce8544d81da66c07aaede5386d6fbebb Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 25 七月 2025 15:41:01 +0800
Subject: [PATCH] 1.序列化问题 2.设备领用逻辑优化

---
 main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentUsageRecordServiceImpl.java |   37 ++++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 19 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 13c1d08..c272fa3 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
@@ -3,9 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.entity.Supply;
-import com.ruoyi.basic.mapper.CoalInfoMapper;
-import com.ruoyi.business.dto.EquipmentManagementDto;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.business.dto.EquipmentUsageRecordDto;
 import com.ruoyi.business.entity.EquipmentManagement;
 import com.ruoyi.business.entity.EquipmentUsageDetail;
@@ -14,12 +12,11 @@
 import com.ruoyi.business.mapper.EquipmentUsageDetailMapper;
 import com.ruoyi.business.mapper.EquipmentUsageRecordMapper;
 import com.ruoyi.business.service.EquipmentUsageRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.system.mapper.SysUserMapper;
-import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
@@ -133,7 +130,7 @@
             }
 
             // 澶勭悊褰掕繕閫昏緫
-            if (equipmentUsageRecordDto.getEquipmentStatus() == 2) {
+            if (equipmentUsageRecordDto.getEquipmentStatus() != 1) {
                 result = handleReturnOperation(equipmentUsageRecordDto, equipment, originalRecord, userId, username);
             } else {
                 // 澶勭悊鏅�氱紪杈戦�昏緫锛堥潪褰掕繕鐘舵�侊級
@@ -173,7 +170,7 @@
 
     private int handleReturnOperation(EquipmentUsageRecordDto dto, EquipmentManagement equipment,
                                       EquipmentUsageRecord originalRecord, Long userId, String username) {
-        // 鑾峰彇鏈褰掕繕鏁伴噺
+        // 鏍¢獙褰掕繕鏁伴噺
         Integer returnQuantity = dto.getReturnQuantity();
         if (returnQuantity == null || returnQuantity <= 0) {
             throw new RuntimeException("褰掕繕鏁伴噺蹇呴』澶т簬0");
@@ -185,18 +182,19 @@
             throw new RuntimeException("褰掕繕鏁伴噺涓嶈兘瓒呰繃鏈綊杩樻暟閲忥紝鍓╀綑鏈綊杩樻暟閲忥細" + remainingQuantity);
         }
 
-        // 鏇存柊涓昏褰�
+        // 鍑嗗鏇存柊璁板綍
         EquipmentUsageRecord updateRecord = new EquipmentUsageRecord();
         updateRecord.setId(originalRecord.getId());
-        updateRecord.setReturnQuantity(originalRecord.getReturnQuantity() + returnQuantity);
-        updateRecord.setEquipmentStatus(2); // 宸插綊杩樼姸鎬�
-        updateRecord.setUsageEndTime(LocalDate.now());
-        // 濡傛灉鍏ㄩ儴褰掕繕锛屾洿鏂扮姸鎬佸拰鏃堕棿
-//        if (updateRecord.getReturnQuantity().equals(originalRecord.getUsageQuantity())) {
-//
-//        }
+        int newReturnQuantity = originalRecord.getReturnQuantity() + returnQuantity;
+        updateRecord.setReturnQuantity(newReturnQuantity);
 
-        // 鎭㈠搴撳瓨
+        // 鍒ゆ柇鏄惁鍏ㄩ儴褰掕繕
+        boolean isFullReturn = newReturnQuantity == originalRecord.getUsageQuantity();
+        int newStatus = isFullReturn ? 3 : 2; // 3琛ㄧず鍏ㄩ儴褰掕繕锛�2琛ㄧず閮ㄥ垎褰掕繕
+        updateRecord.setEquipmentStatus(newStatus);
+        updateRecord.setUsageEndTime(LocalDate.now());
+
+        // 鎭㈠搴撳瓨鏁伴噺
         equipment.setQuantity(equipment.getQuantity() + returnQuantity);
         equipmentManagementMapper.updateById(equipment);
 
@@ -205,10 +203,11 @@
 
         // 淇濆瓨褰掕繕鏄庣粏璁板綍
         if (result > 0) {
-            String remark = "璁惧褰掕繕" + (updateRecord.getEquipmentStatus() == 2 ? "锛堝叏閮ㄥ綊杩橈級" : "锛堥儴鍒嗗綊杩橈級");
-            saveUsageDetail(originalRecord.getId(), originalRecord.getEquipmentId(), 2, returnQuantity, userId, username, remark);
+            String remark = isFullReturn ? "璁惧褰掕繕锛堝叏閮ㄥ綊杩橈級" : "璁惧褰掕繕锛堥儴鍒嗗綊杩橈級";
+            int operationType = isFullReturn ? 3 : 2; // 涓庝富璁板綍鐘舵�佷繚鎸佷竴鑷�
+            saveUsageDetail(originalRecord.getId(), originalRecord.getEquipmentId(),
+                    operationType, returnQuantity, userId, username, remark);
         }
-
         return result;
     }
 

--
Gitblit v1.9.3