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/EquipmentManagementServiceImpl.java | 68 +++++++++++++++++++++++++++++++-- 1 files changed, 63 insertions(+), 5 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 dbad9ab..ece6d7b 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 @@ -4,17 +4,22 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.business.dto.EquipmentManagementDto; -import com.ruoyi.business.dto.ProductionMasterDto; import com.ruoyi.business.entity.EquipmentManagement; -import com.ruoyi.business.entity.Production; +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.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Transactional; +import java.beans.Transient; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -33,10 +38,52 @@ private final EquipmentManagementMapper equipmentManagementMapper; + private final EquipmentUsageRecordMapper equipmentUsageRecordMapper; + public IPage<EquipmentManagementDto> selectProductionList(Page<EquipmentManagement> page, EquipmentManagementDto equipmentManagementDto) { - Page<EquipmentManagement> entityPage = equipmentManagementMapper.selectPage(page, null); + // 1. 鏋勫缓鏌ヨ鏉′欢锛坰earchAll 妯$硦鏌ヨ锛� + LambdaQueryWrapper<EquipmentManagement> queryWrapper = new LambdaQueryWrapper<>(); + + if (StringUtils.isNotBlank(equipmentManagementDto.getSearchAll())) { + String searchValue = equipmentManagementDto.getSearchAll(); + queryWrapper.and(wrapper -> + wrapper.like(EquipmentManagement::getEquipmentNo, searchValue) + .or() + .like(EquipmentManagement::getEquipmentName, searchValue) + .or() + .like(EquipmentManagement::getSpecification, searchValue) + ); + } + + // 2. 鎵ц鍒嗛〉鏌ヨ + Page<EquipmentManagement> entityPage = equipmentManagementMapper.selectPage(page, queryWrapper); + + // 3. 杞崲涓� DTO 鍒嗛〉 IPage<EquipmentManagementDto> dtoPage = new Page<>(); - BeanUtils.copyProperties(entityPage, dtoPage); + BeanUtils.copyProperties(entityPage, dtoPage, "records"); + + // 4. 鏌ヨ姣忎釜璁惧鐨勪娇鐢ㄦ�婚噺锛坲sageQuantity锛夊苟璁剧疆鍒� DTO + List<EquipmentManagementDto> dtoRecords = entityPage.getRecords().stream() + .map(entity -> { + EquipmentManagementDto dto = new EquipmentManagementDto(); + BeanUtils.copyProperties(entity, dto); + + // 鏌ヨ璇ヨ澶囩殑浣跨敤鎬婚噺锛坲sageQuantity锛� + LambdaQueryWrapper<EquipmentUsageRecord> usageQueryWrapper = new LambdaQueryWrapper<>(); + usageQueryWrapper.eq(EquipmentUsageRecord::getEquipmentId, entity.getId()); + + // 璁$畻鎬讳娇鐢ㄩ噺 + Integer totalUsage = equipmentUsageRecordMapper.selectList(usageQueryWrapper).stream() + .mapToInt(EquipmentUsageRecord::getUsageQuantity) + .sum(); + + // 璁剧疆浣跨敤鎬婚噺 + dto.setUsedNo(totalUsage); + return dto; + }) + .toList(); + + dtoPage.setRecords(dtoRecords); return dtoPage; } @@ -66,7 +113,18 @@ } @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