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/EquipmentManagementServiceImpl.java | 24 ++++++++++++++++++++---- 1 files changed, 20 insertions(+), 4 deletions(-) diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentManagementServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentManagementServiceImpl.java index 863d663..9c88381 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentManagementServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/EquipmentManagementServiceImpl.java @@ -3,18 +3,21 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.business.dto.EquipmentManagementDto; import com.ruoyi.business.entity.EquipmentManagement; import com.ruoyi.business.entity.EquipmentUsageRecord; import com.ruoyi.business.mapper.EquipmentManagementMapper; import com.ruoyi.business.mapper.EquipmentUsageRecordMapper; import com.ruoyi.business.service.EquipmentManagementService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.business.vo.EquipmentManagementVo; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; -import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @@ -66,7 +69,8 @@ // 鏌ヨ璇ヨ澶囩殑浣跨敤鎬婚噺锛坲sageQuantity锛� LambdaQueryWrapper<EquipmentUsageRecord> usageQueryWrapper = new LambdaQueryWrapper<>(); - usageQueryWrapper.eq(EquipmentUsageRecord::getEquipmentId, entity.getId()); + usageQueryWrapper.eq(EquipmentUsageRecord::getEquipmentId, entity.getId()) + .eq(EquipmentUsageRecord::getEquipmentStatus, 1); // 璁$畻鎬讳娇鐢ㄩ噺 Integer totalUsage = equipmentUsageRecordMapper.selectList(usageQueryWrapper).stream() @@ -103,13 +107,25 @@ vo.setId(equipment.getId()); // 璁惧id vo.setEquipmentName(equipment.getEquipmentName()); // 璁惧鍚嶇О vo.setQuantity(equipment.getQuantity()); // 鏁伴噺 + vo.setConsumables(equipment.isConsumables()); // 鏄惁鑰楁潗绫� return vo; }) .toList(); } @Override + @Transactional(isolation = Isolation.REPEATABLE_READ) public int delByIds(Long[] ids) { - return equipmentManagementMapper.deleteByIds(Arrays.asList(ids)); + // 1. 妫�鏌ヨ澶囨槸鍚︽鍦ㄤ娇鐢紙娣诲姞琛岄攣 for update锛� + List<EquipmentUsageRecord> records = equipmentUsageRecordMapper.selectList( + new LambdaQueryWrapper<EquipmentUsageRecord>() + .in(EquipmentUsageRecord::getEquipmentId, Arrays.asList(ids)) + .last("FOR UPDATE") // 娣诲姞琛岄攣锛岄攣瀹氭煡璇㈢粨鏋� + ); + if (!records.isEmpty()) { + throw new BaseException("璁惧姝e湪浣跨敤涓紝璇锋牳瀵�!"); + } else { + return equipmentManagementMapper.deleteByIds(Arrays.asList(ids)); + } } } -- Gitblit v1.9.3