| | |
| | | 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.utils.StringUtils; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | |
| | | 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. 构建查询条件(searchAll 模糊查询) |
| | | 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. 查询每个设备的使用总量(usageQuantity)并设置到 DTO |
| | | List<EquipmentManagementDto> dtoRecords = entityPage.getRecords().stream() |
| | | .map(entity -> { |
| | | EquipmentManagementDto dto = new EquipmentManagementDto(); |
| | | BeanUtils.copyProperties(entity, dto); |
| | | |
| | | // 查询该设备的使用总量(usageQuantity) |
| | | 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; |
| | | } |
| | | |