gongchunyi
15 小时以前 1db111fdf6c65fa1debadf648e4c22bd466744f8
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -4,6 +4,8 @@
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.common.enums.FileNameType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -12,30 +14,41 @@
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.other.service.TempFileService;
import com.ruoyi.production.mapper.ProductProcessMapper;
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@Service
@AllArgsConstructor
@Slf4j
public class DeviceLedgerServiceImpl  extends ServiceImpl<DeviceLedgerMapper, DeviceLedger> implements IDeviceLedgerService {
public class DeviceLedgerServiceImpl extends ServiceImpl<DeviceLedgerMapper, DeviceLedger> implements IDeviceLedgerService {
    @Autowired
    private DeviceLedgerMapper deviceLedgerMapper;
    @Autowired
    private SysUserMapper sysUserMapper;
    @Autowired
    private ProductProcessMapper productProcessMapper;
    @Override
    public IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger) {
@@ -45,24 +58,48 @@
    @Override
    public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
        AjaxResult processCheckResult = validateProductProcess(deviceLedger.getProductProcessId());
        if (processCheckResult != null) {
            return processCheckResult;
        }
        LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
        deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceModel,deviceLedger.getDeviceModel());
        deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName, deviceLedger.getDeviceName());
        if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
            return AjaxResult.error("设备型号已存在");
            return AjaxResult.error("设备名称已存在");
        }
        boolean save = this.save(deviceLedger);
        if (save){
            return AjaxResult.success();
        if (save) {
            return AjaxResult.success("添加成功", deviceLedger.getId());
        }
        return AjaxResult.error();
    }
    @Override
    public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
        AjaxResult processCheckResult = validateProductProcess(deviceLedger.getProductProcessId());
        if (processCheckResult != null) {
            return processCheckResult;
        }
        if (this.updateById(deviceLedger)) {
            return AjaxResult.success();
        }
        return AjaxResult.error();
    }
    @Override
    public DeviceLedger getDetailById(Long id) {
        return deviceLedgerMapper.selectById1(id);
    }
    private AjaxResult validateProductProcess(Long productProcessId) {
        if (productProcessId == null) {
            return null;
        }
        ProductProcess productProcess = productProcessMapper.selectById(productProcessId);
        if (productProcess == null) {
            return AjaxResult.error("工序不存在,请重新选择");
        }
        return null;
    }
    @Override
@@ -74,22 +111,22 @@
            ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
            supplierManageList.stream().forEach(deviceLedger -> {
                DeviceLedgerExeclDto deviceLedgerExeclDto = new DeviceLedgerExeclDto();
                BeanUtils.copyProperties(deviceLedger,deviceLedgerExeclDto);
                BeanUtils.copyProperties(deviceLedger, deviceLedgerExeclDto);
                deviceLedgerExeclDto.setCreateUser(sysUserMapper.selectUserById(Long.valueOf(deviceLedger.getCreateUser().toString())).getUserName());
                deviceLedgerExeclDtos.add(deviceLedgerExeclDto);
            });
            ExcelUtil<DeviceLedgerExeclDto> util = new ExcelUtil<DeviceLedgerExeclDto>(DeviceLedgerExeclDto.class);
            util.exportExcel(response, deviceLedgerExeclDtos, "设备台账导出");
        }else  {
        } else {
            ArrayList<Long> arrayList = new ArrayList<>();
            Arrays.stream(ids).map(id -> {
                return arrayList.add( id);
                return arrayList.add(id);
            });
            List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(arrayList);
            ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
            supplierManageList.stream().forEach(deviceLedger -> {
                DeviceLedgerExeclDto deviceLedgerExeclDto = new DeviceLedgerExeclDto();
                BeanUtils.copyProperties(deviceLedger,deviceLedgerExeclDto);
                BeanUtils.copyProperties(deviceLedger, deviceLedgerExeclDto);
                deviceLedgerExeclDto.setCreateUser(sysUserMapper.selectUserById(Long.valueOf(deviceLedger.getCreateUser().toString())).getUserName());
                deviceLedgerExeclDtos.add(deviceLedgerExeclDto);
            });
@@ -106,15 +143,87 @@
        userList.forEach(c -> {
            DeviceLedger deviceLedger = new DeviceLedger();
            SysUser sysUser = sysUserMapper.selectUserByUserName(c.getCreateUser());
            if (sysUser!=null) {
            if (sysUser != null) {
                deviceLedger.setCreateUser(sysUser.getUserId().intValue());
            }else {
            } else {
                deviceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
            }
            BeanUtils.copyProperties(c,deviceLedger);
            BeanUtils.copyProperties(c, deviceLedger);
            deviceLedgerMapper.insert(deviceLedger);
        });
        return true;
    }
    @Autowired
    private CommonFileMapper commonFileMapper;
    @Autowired
    private TempFileService tempFileService;
    @Override
    public void uploadFile(MultipartFile file, Long deviceLedgerId, Integer fileType) {
        if (file == null || file.isEmpty()) {
            throw new ServiceException("上传失败,文件不能为空");
        }
        if (deviceLedgerId == null || deviceLedgerId <= 0) {
            throw new ServiceException("上传失败,设备台账ID不能为空");
        }
        int resolvedType = (fileType == null) ? FileNameType.EQUIPMENT_LEDGER.getValue() : fileType;
        try {
            tempFileService.uploadByCommon(file, resolvedType, deviceLedgerId);
        } catch (Exception e) {
            throw new ServiceException("上传失败," + e.getMessage());
        }
    }
    @Override
    public List<CommonFile> getFiles(Long deviceLedgerId) {
        if (deviceLedgerId == null || deviceLedgerId <= 0) {
            return Collections.emptyList();
        }
        return commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                .eq(CommonFile::getCommonId, deviceLedgerId)
                .eq(CommonFile::getType, FileNameType.EQUIPMENT_LEDGER.getValue())
                .orderByAsc(CommonFile::getId));
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteFile(Long fileId) {
        if (fileId == null || fileId <= 0) {
            throw new ServiceException("删除失败,传入数据异常");
        }
        CommonFile commonFile = commonFileMapper.selectById(fileId);
        if (commonFile == null) {
            throw new ServiceException("删除失败,文件不存在");
        }
        try {
            if (commonFile.getUrl() != null && !commonFile.getUrl().isEmpty()) {
                Files.deleteIfExists(Paths.get(commonFile.getUrl()));
            }
        } catch (Exception e) {
            log.error("设备台账文件删除失败: {}", e.getMessage());
            throw new ServiceException("删除失败," + e.getMessage());
        }
        commonFileMapper.deleteById(fileId);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean deleteLedgerAndFiles(java.util.Collection<Long> ids) {
        if (ids == null || ids.isEmpty()) {
            throw new ServiceException("删除失败,请传入要删除的数据");
        }
        java.util.List<CommonFile> fileList = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                .in(CommonFile::getCommonId, ids)
                .eq(CommonFile::getType, FileNameType.EQUIPMENT_LEDGER.getValue()));
        for (CommonFile commonFile : fileList) {
            deleteFile(commonFile.getId());
        }
        return this.removeBatchByIds(ids);
    }
}