package com.ruoyi.device.service.impl; 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.utils.bean.BeanUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.device.dto.DeviceMaintenanceDto; import com.ruoyi.device.execl.DeviceMaintenanceExeclDto; import com.ruoyi.device.mapper.DeviceMaintenanceMapper; import com.ruoyi.device.pojo.DeviceMaintenance; import com.ruoyi.device.service.DeviceMaintenanceFileService; import com.ruoyi.device.service.IDeviceMaintenanceService; import com.ruoyi.framework.web.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; @Service public class DeviceMaintenanceServiceImpl extends ServiceImpl implements IDeviceMaintenanceService { @Autowired private DeviceMaintenanceMapper deviceMaintenanceMapper; @Autowired private DeviceMaintenanceFileService deviceMaintenanceFileService; @Override public IPage queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto) { return deviceMaintenanceMapper.queryPage(page, deviceMaintenanceDto); } @Override @Transactional(rollbackFor = Exception.class) public AjaxResult saveDeviceRepair(DeviceMaintenance deviceMaintenance) { // 先保存设备保养记录 boolean save = this.save(deviceMaintenance); if (!save) { return AjaxResult.error("保存失败"); } // 处理临时文件关联 if (deviceMaintenance.getTempFileIds() != null && !deviceMaintenance.getTempFileIds().isEmpty()) { for (String tempId : deviceMaintenance.getTempFileIds()) { try { deviceMaintenanceFileService.bindFromTemp(tempId, deviceMaintenance.getId().intValue(), null); } catch (Exception e) { throw new RuntimeException("关联临时文件失败: " + e.getMessage()); } } } return AjaxResult.success(deviceMaintenance); } @Override @Transactional(rollbackFor = Exception.class) public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenance deviceMaintenance) { // 处理临时文件关联 if (deviceMaintenance.getTempFileIds() != null && !deviceMaintenance.getTempFileIds().isEmpty()) { for (String tempId : deviceMaintenance.getTempFileIds()) { try { deviceMaintenanceFileService.bindFromTemp(tempId, deviceMaintenance.getId().intValue(), null); } catch (Exception e) { return AjaxResult.error("关联临时文件失败: " + e.getMessage()); } } } if (this.updateById(deviceMaintenance)) { return AjaxResult.success(); } return AjaxResult.error(); } @Override public void export(HttpServletResponse response, Long[] ids) { List supplierManageList = deviceMaintenanceMapper.selectList(null); ArrayList deviceLedgerExeclDtos = new ArrayList<>(); supplierManageList.forEach(deviceMaintenance -> { DeviceMaintenanceExeclDto deviceRepairExeclDto = new DeviceMaintenanceExeclDto(); BeanUtils.copyProperties(deviceMaintenance,deviceRepairExeclDto); deviceRepairExeclDto.setStatus(deviceMaintenance.getStatus() == 0 ? "待维修" : deviceMaintenance.getStatus() == 1 ? "完结" : "失败"); // deviceRepairExeclDto.setMaintenanceResult(deviceMaintenance.getMaintenanceResult() != null && deviceMaintenance.getMaintenanceResult() == 0 ? "维修" : "完好"); deviceLedgerExeclDtos.add(deviceRepairExeclDto); }); ExcelUtil util = new ExcelUtil(DeviceMaintenanceExeclDto.class); util.exportExcel(response, deviceLedgerExeclDtos, "设备报修导出"); } @Override public DeviceMaintenanceDto detailById(Long id) { return deviceMaintenanceMapper.detailById(id); } }