chenhj
3 天以前 8ec375a6fab78e088b3c05e550c0581c9c57152e
src/main/java/com/ruoyi/device/service/impl/DeviceRepairServiceImpl.java
@@ -1,11 +1,12 @@
package com.ruoyi.device.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.xiaoymin.knife4j.core.util.StrUtil;
import com.google.common.collect.Lists;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.dto.DeviceDefectRecordDto;
@@ -20,14 +21,15 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.measuringinstrumentledger.mapper.SparePartsMapper;
import com.ruoyi.measuringinstrumentledger.pojo.SpareParts;
import com.ruoyi.measuringinstrumentledger.service.SparePartsService;
import com.ruoyi.other.pojo.TempFile;
import com.ruoyi.other.service.TempFileService;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@@ -46,12 +48,20 @@
    private IDeviceLedgerService deviceLedgerService;
    @Autowired
    private SparePartsMapper sparePartsMapper;
    @Autowired
    private TempFileService tempFileService;
    @Autowired
    private CommonFileMapper commonFileMapper;
    @Override
    public IPage<DeviceRepairDto> queryPage(Page page, DeviceRepairDto deviceRepairDto) {
        IPage<DeviceRepairDto> deviceRepairDtoIPage = deviceRepairMapper.queryPage(page, deviceRepairDto);
        List<DeviceRepairDto> records = deviceRepairDtoIPage.getRecords();
        List<Long> recordIds = records.stream()
                .map(DeviceRepairDto::getId)
                .collect(Collectors.toList());
        if (!CollectionUtils.isEmpty(records)) {
            // 1. 获取所有唯一的备件ID
            Set<String> allIds = records.stream()
@@ -86,6 +96,12 @@
                    record.setSparePartsNames(names);
                });
            }
            // 处理文件
            List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>().in(CommonFile::getCommonId, recordIds)
                    .eq(CommonFile::getType, FileNameType.DeviceRepair.getValue()));
            Map<Long, List<CommonFile>> collect = commonFiles.stream()
                    .collect(Collectors.groupingBy(CommonFile::getCommonId));
            records.forEach(record -> record.setFileList(collect.get(record.getId())));
        }
        return deviceRepairDtoIPage;
@@ -94,6 +110,17 @@
    @Override
    public AjaxResult saveDeviceRepair(DeviceRepair deviceRepair) {
        DeviceLedger byId = deviceLedgerService.getById(deviceRepair.getDeviceLedgerId());
        if (CollectionUtils.isNotEmpty(deviceRepair.getFileList())) {
            List<String> fileIds = deviceRepair.getFileList().stream()
                    .map(TempFile::getTempId)
                    .collect(Collectors.toList());
            try {
                tempFileService.migrateTempFilesToFormal(deviceRepair.getId(), fileIds, FileNameType.DeviceRepair.getValue());
            } catch (Exception e) {
                log.error("设备维修文件迁移错误", e);
            }
        }
        deviceRepair.setDeviceName(byId.getDeviceName());
        deviceRepair.setDeviceModel(byId.getDeviceModel());
        boolean save = this.save(deviceRepair);
@@ -106,6 +133,16 @@
    @Override
    public AjaxResult updateDeviceRepair(DeviceRepair deviceRepair) {
        if (this.updateById(deviceRepair)) {
            if (CollectionUtils.isNotEmpty(deviceRepair.getFileList())) {
                List<String> fileIds = deviceRepair.getFileList().stream()
                        .map(TempFile::getTempId)
                        .collect(Collectors.toList());
                try {
                    tempFileService.migrateTempFilesToFormal(deviceRepair.getId(), fileIds, FileNameType.DeviceRepair.getValue());
                } catch (Exception e) {
                    log.error("设备维修文件迁移错误", e);
                }
            }
            Long id = deviceRepair.getId();
            //
            DeviceDefectRecordDto deviceDefectRecordDto = new DeviceDefectRecordDto();