lxp
2025-03-14 f1841682cff7d289bb777bd2b6441c3ced18ec77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package com.ruoyi.require.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.require.dto.IncidentReportAddDto;
import com.ruoyi.require.excel.IncidentReportExport;
import com.ruoyi.require.mapper.IncidentReportMapper;
import com.ruoyi.require.pojo.*;
import com.ruoyi.require.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;
 
/**
 * <p>
 * 设备验收添加验收字段表 服务实现类
 * </p>
 *
 * @author 江苏鵷雏网络科技有限公司
 * @since 2024-09-19 03:54:49
 */
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class IncidentReportServiceImpl extends ServiceImpl<IncidentReportMapper, IncidentReport> implements IncidentReportService {
    @Autowired
    private UserMapper userMapper;
    private IncidentSparePartsService incidentSparePartsService;
    private IncidentFileService incidentFileService;
    private IncidentInstallService incidentInstallService;
    private IncidentAcceptanceCheckService incidentAcceptanceCheckService;
 
    private final NumberGenerator<IncidentReport> 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<IncidentReportAddDto> 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.<IncidentSpareParts>lambdaQuery().eq(IncidentSpareParts::getIncidentId, id));
        incidentFileService.remove(Wrappers.<IncidentFile>lambdaQuery().eq(IncidentFile::getIncidentId, id));
        incidentInstallService.remove(Wrappers.<IncidentInstall>lambdaQuery().eq(IncidentInstall::getIncidentId, id));
        incidentAcceptanceCheckService.remove(Wrappers.<IncidentAcceptanceCheck>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> incidentReportExport(Integer deviceId) {
        return baseMapper.incidentReportExport(deviceId);
    }
}