package com.ruoyi.requier.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.numgen.NumberGenerator; import com.ruoyi.requier.dto.IncidentReportAddDto; import com.ruoyi.requier.excel.IncidentReportExport; import com.ruoyi.requier.mapper.IncidentReportMapper; import com.ruoyi.requier.pojo.*; import com.ruoyi.requier.service.*; import com.ruoyi.system.mapper.UserMapper; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; /** *

* 设备验收添加验收字段表 服务实现类 *

* * @author 江苏鵷雏网络科技有限公司 * @since 2024-09-19 03:54:49 */ @Service @AllArgsConstructor @Transactional(rollbackFor = Exception.class) public class IncidentReportServiceImpl extends ServiceImpl implements IncidentReportService { @Autowired private UserMapper userMapper; private IncidentSparePartsService incidentSparePartsService; private IncidentFileService incidentFileService; private IncidentInstallService incidentInstallService; private IncidentAcceptanceCheckService incidentAcceptanceCheckService; private final NumberGenerator numberGenerator; @Override public void saveIncidentReportData(IncidentReportAddDto incidentReportAddDto) { if (ObjectUtils.isEmpty(incidentReportAddDto.getProcessNumber())) { String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date()); String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date()); String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-07FM " + month + "-" + year + month, IncidentReport::getProcessNumber); incidentReportAddDto.setProcessNumber(processNumber); } this.saveOrUpdate(incidentReportAddDto); // 备件确认List if (ObjectUtils.isNotEmpty(incidentReportAddDto.getSparePartsConfirmationList())) { incidentReportAddDto.getSparePartsConfirmationList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId())); incidentSparePartsService.saveOrUpdateBatch(incidentReportAddDto.getSparePartsConfirmationList()); } // 文件确认List if (ObjectUtils.isNotEmpty(incidentReportAddDto.getFileClassConfirmationList())) { incidentReportAddDto.getFileClassConfirmationList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId())); incidentFileService.saveOrUpdateBatch(incidentReportAddDto.getFileClassConfirmationList()); } // 安装验收记录 if (ObjectUtils.isNotEmpty(incidentReportAddDto.getInstallationAcceptanceRecordList())) { incidentReportAddDto.getInstallationAcceptanceRecordList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId())); incidentInstallService.saveOrUpdateBatch(incidentReportAddDto.getInstallationAcceptanceRecordList()); } // 验收核查记录 if (ObjectUtils.isNotEmpty(incidentReportAddDto.getAcceptanceCheckRecordList())) { incidentReportAddDto.getAcceptanceCheckRecordList().forEach(i -> i.setIncidentId(incidentReportAddDto.getId())); incidentAcceptanceCheckService.saveOrUpdateBatch(incidentReportAddDto.getAcceptanceCheckRecordList()); } } @Override public IPage getByDeviceId(Integer deviceId, Page page, String processNumber) { return baseMapper.getByDeviceId(page, deviceId, processNumber); } @Override public void deleteIncidentReport(Integer id) { baseMapper.deleteById(id); incidentSparePartsService.remove(Wrappers.lambdaQuery().eq(IncidentSpareParts::getIncidentId, id)); incidentFileService.remove(Wrappers.lambdaQuery().eq(IncidentFile::getIncidentId, id)); incidentInstallService.remove(Wrappers.lambdaQuery().eq(IncidentInstall::getIncidentId, id)); incidentAcceptanceCheckService.remove(Wrappers.lambdaQuery().eq(IncidentAcceptanceCheck::getIncidentId, id)); } @Override public IncidentReportAddDto getShowIncidentReport(Integer id) { return baseMapper.getShowIncidentReport(id); } @Override public void deleteIncidentReportAll(Integer sparePartsId, Integer fileId, Integer installId, Integer acceptanceCheckId) { if (ObjectUtils.isNotEmpty(sparePartsId)) { incidentSparePartsService.removeById(sparePartsId); } if (ObjectUtils.isNotEmpty(fileId)) { incidentFileService.removeById(fileId); } if (ObjectUtils.isNotEmpty(installId)) { incidentInstallService.removeById(installId); } if (ObjectUtils.isNotEmpty(acceptanceCheckId)) { incidentAcceptanceCheckService.removeById(acceptanceCheckId); } } @Override public List incidentReportExport(Integer deviceId) { return baseMapper.incidentReportExport(deviceId); } }