liujie
2026-01-29 162212c128b0cd46c2ea0c924de51a25646a9f56
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
package com.ruoyi.web.controller.api;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.dto.EditHiddenDangerResponsiblePersonDto;
import com.ruoyi.system.model.*;
import com.ruoyi.system.model.Record;
import com.ruoyi.system.query.*;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
@RestController
@RequestMapping("/projectEntrust")
@Api(tags = "委托方端")
public class EntrustProjectController {
 
 
    @Autowired
    private ProjectService projectService;
    @Autowired
    private ClientService clientService;
    @Autowired
    private ClientParamService clientParamService;
 
    @Autowired
    private DeviceUsageService deviceUsageService;
 
    @Autowired
    private ReportTemplateService reportTemplateService;
    @Autowired
    private ProjectInfoService projectInfoService;
    @Autowired
    private ScreenAccountService screenAccountService;
 
    @Autowired
    private TaskService taskService;
 
    @Autowired
    private RecordService recordService;
    @Autowired
    private RecordImageService recordImageService;
    @Autowired
    private UserFileService userFileService;
 
    @ApiOperation(value = "项目列表", response = EntrustProjectVo.class)
    @PostMapping("/projectList")
    public R<Page<EntrustProjectVo>> projectList(@RequestBody EntrustListQuery query) {
        Page<EntrustProjectVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<EntrustProjectVo> list = deviceUsageService.projectList(page, query);
        page.setRecords(list);
        return R.ok(page);
    }
 
    @ApiOperation(value = "项目列表-报告模板列表", response = ReportTemplate.class)
    @GetMapping("/projectReport")
    public R<List<ReportTemplate>> projectReport(Integer id, Integer type) {
        Client client = clientService.getById(id);
        ClientParam clientParam = clientParamService.lambdaQuery().eq(ClientParam::getClientId, client.getId())
                .last("limit 1")
                .one();
        List<Integer> templateIds = new ArrayList<>();
        Integer safetyId = clientParam.getSafetyId();
        if (safetyId != null) templateIds.add(safetyId);
        Integer deviceTemplateId = clientParam.getDeviceTemplateId();
        if (deviceTemplateId != null) templateIds.add(deviceTemplateId);
 
        if (templateIds.isEmpty()) {
            return R.ok(new ArrayList<>());
        }
        List<ReportTemplate> list = reportTemplateService.lambdaQuery()
                .in(ReportTemplate::getId, templateIds).list();
        return R.ok(list);
    }
 
    @ApiOperation(value = "项目列表-报告列表", response = EntrustProjectReportVo.class)
    @PostMapping("/projectReport")
    public R<Page<EntrustProjectReportVo>> projectReport(@RequestBody ProjectReportListQuery query) {
        Page<EntrustProjectReportVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<EntrustProjectReportVo> list = deviceUsageService.projectReport(page, query);
        page.setRecords(list);
        return R.ok(page);
    }
 
    @ApiOperation(value = "获取设备列表", response = EntrustDeviceListVo.class)
    @PostMapping("/deviceList")
    public R<Page<EntrustDeviceListVo>> deviceList(@RequestBody @Valid EntrustDeviceListQuery query) {
        Page<EntrustDeviceListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<EntrustDeviceListVo> list = deviceUsageService.deviceList(page, query);
        page.setRecords(list);
        return R.ok(page);
    }
 
    @ApiOperation(value = "获取重大隐患列表", response = DeviceListVo.class)
    @PostMapping("/errorList")
    public R<Page<ErrorListVo>> errorList(@RequestBody @Valid ErrorListQuery query) {
        Page<ErrorListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<ErrorListVo> list = deviceUsageService.errorList(page, query);
 
        for (ErrorListVo errorListVo : list) {
            List<Integer> recordFileIds = recordImageService.lambdaQuery()
                    .eq(RecordImage::getRecordId, errorListVo.getId()).list()
                    .stream().map(RecordImage::getUserFileId).collect(Collectors.toList());
            if (!recordFileIds.isEmpty()) {
                List<UserFile> pictures = userFileService.lambdaQuery()
                        .in(UserFile::getId, recordFileIds).list();
                errorListVo.setPictures(pictures);
            }
        }
        page.setRecords(list);
        return R.ok(page);
    }
    @ApiOperation(value = "获取安全隐患列表", response = ErrorListVo.class)
    @PostMapping("/safetyErrorList")
    public R<Page<ErrorListVo>> safetyErrorList(@RequestBody @Valid ErrorListQuery query) {
        Page<ErrorListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<ErrorListVo> list = deviceUsageService.safetyErrorList(page, query);
        for (ErrorListVo errorListVo : list) {
            List<Integer> recordFileIds = recordImageService.lambdaQuery()
                    .eq(RecordImage::getRecordId, errorListVo.getId()).list()
                    .stream().map(RecordImage::getUserFileId).collect(Collectors.toList());
            if (!recordFileIds.isEmpty()) {
                List<UserFile> pictures = userFileService.lambdaQuery()
                        .in(UserFile::getId, recordFileIds).list();
                errorListVo.setPictures(pictures);
            }
        }
        page.setRecords(list);
        return R.ok(page);
    }
    @ApiOperation(value = "获取设备隐患列表", response = ErrorListVo.class)
    @PostMapping("/deviceErrorList")
    public R<Page<ErrorListVo>> deviceList(@RequestBody @Valid ErrorListQuery query) {
        Page<ErrorListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        List<ErrorListVo> list = deviceUsageService.deviceErrorList(page, query);
        for (ErrorListVo errorListVo : list) {
            List<Integer> recordFileIds = recordImageService.lambdaQuery()
                    .eq(RecordImage::getRecordId, errorListVo.getId()).list()
                    .stream().map(RecordImage::getUserFileId).collect(Collectors.toList());
            if (!recordFileIds.isEmpty()) {
                List<UserFile> pictures = userFileService.lambdaQuery()
                        .in(UserFile::getId, recordFileIds).list();
                errorListVo.setPictures(pictures);
            }
        }
        page.setRecords(list);
        return R.ok(page);
    }
    @ApiOperation(value = "委托方端隐患详情")
    @GetMapping("/errorDetail")
    public R<?> errorDetail(Integer id) {
        Record record = recordService.getById(id);
        Integer problemId = record.getProblemId();
        var res = recordService.getHiddenDangerDetail(problemId);
        return R.ok(res);
    }
    @ApiOperation(value = "获取隐患详情")
    @GetMapping("/getHiddenDangerDetail/{problemId}")
    public R<?> getHiddenDangerDetail(@PathVariable Integer problemId) {
        var record = recordService.getHiddenDangerDetail(problemId);
        return R.ok(record);
    }
 
    @ApiOperation(value = "设置负责人")
    @GetMapping("/setResponsiblePerson")
    public R setResponsiblePerson(Integer id , String responsiblePerson) {
        Record record = recordService.getById(id);
        record.setResponsiblePerson(responsiblePerson);
        recordService.updateById(record);
        return R.ok();
    }
 
 
 
 
 
}