| New file |
| | |
| | | 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; |
| | | |
| | | @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("/setResponsiblePerson") |
| | | public R setResponsiblePerson(Integer id , String responsiblePerson) { |
| | | Record record = recordService.getById(id); |
| | | record.setResponsiblePerson(responsiblePerson); |
| | | recordService.updateById(record); |
| | | return R.ok(); |
| | | } |
| | | @ApiOperation(value = "隐患详情") |
| | | @GetMapping("/errorDetail") |
| | | public R errorDetail(Integer id) { |
| | | Record record = recordService.getById(id); |
| | | |
| | | return R.ok(); |
| | | } |
| | | @ApiOperation(value = "获取项目详情", response = Project.class) |
| | | @GetMapping("/getProjectDetail/{id}") |
| | | public R<ProjectVo> getStoryDetail(@PathVariable Integer id) { |
| | | ProjectVo projectVo = new ProjectVo(); |
| | | Project project = projectService.getById(id); |
| | | BeanUtils.copyProperties(project, projectVo); |
| | | |
| | | List<String> properties = deviceUsageService.getDeviceUsageList(id); |
| | | projectVo.setProperties(properties); |
| | | |
| | | ProjectInfo projectInfo = projectInfoService.getOne(new LambdaUpdateWrapper<ProjectInfo>().eq(ProjectInfo::getProjectId, id)); |
| | | if (projectInfo != null) { |
| | | projectVo.setProgress(projectInfo.getProgress()); |
| | | } |
| | | Task task = taskService.getOne(new LambdaUpdateWrapper<Task>().eq(Task::getProjectId, id).orderByDesc(Task::getUpdateTime).last("limit 1")); |
| | | |
| | | if (task != null) { |
| | | projectVo.setCheckTime(task.getUpdateTime()); |
| | | } |
| | | return R.ok(projectVo); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取项目隐患数量", response = Project.class) |
| | | @GetMapping("/getProjectHiddenDangerCount/{id}") |
| | | public R<HiddenDangerVo> getProjectHiddenDangerCount(@PathVariable Integer id) { |
| | | HiddenDangerVo hiddenDangerVo = new HiddenDangerVo(); |
| | | List<Task> list = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, id)); |
| | | if (!list.isEmpty()) { |
| | | List<Integer> taskIds = list.stream().map(Task::getId).collect(Collectors.toList()); |
| | | // 0是一级隐患 |
| | | List<Record> records = recordService.list(new LambdaQueryWrapper<Record>().eq(Record::getLevel, 0).eq(Record::getDeleted, 0).in(Record::getCheckTaskId, taskIds)); |
| | | hiddenDangerVo.setSerious(records.size()); |
| | | int rectified = records.stream().filter(Record::getReformed).collect(Collectors.toList()).size(); |
| | | hiddenDangerVo.setRectified(rectified); |
| | | hiddenDangerVo.setUnRectified(records.size() - rectified); |
| | | } |
| | | return R.ok(hiddenDangerVo); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取隐患列表", response = HiddenDangerListVo.class) |
| | | @PostMapping("/getHiddenDangerList") |
| | | public R<Page<HiddenDangerListVo>> getHiddenDangerList(@RequestBody @Valid HiddenDangerListQuery query) { |
| | | List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, query.getProjectId())); |
| | | if (tasks.isEmpty()) { |
| | | return R.ok(new Page<>()); |
| | | } |
| | | List<Integer> taskIds = tasks.stream().map(Task::getId).collect(Collectors.toList()); |
| | | Page<HiddenDangerListVo> page = new Page<>(query.getPageNum(), query.getPageSize()); |
| | | List<HiddenDangerListVo> list = recordService.getHiddenDangerList(page, query, taskIds); |
| | | page.setRecords(list); |
| | | return R.ok(page); |
| | | |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "编辑隐患责任人") |
| | | @PostMapping("/editHiddenDangerResponsiblePerson") |
| | | public R<Void> editHiddenDangerResponsiblePerson(@RequestBody @Valid EditHiddenDangerResponsiblePersonDto dto) { |
| | | Record record = recordService.getById(dto.getId()); |
| | | if (record == null) { |
| | | return R.fail("隐患不存在"); |
| | | } |
| | | record.setResponsiblePerson(dto.getResponsiblePerson()); |
| | | recordService.updateById(record); |
| | | return R.ok(); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "获取隐患详情") |
| | | @GetMapping("/getHiddenDangerDetail/{problemId}") |
| | | public R<?> getHiddenDangerDetail(@PathVariable Integer problemId) { |
| | | var record = recordService.getHiddenDangerDetail(problemId); |
| | | return R.ok(record); |
| | | } |
| | | |
| | | |
| | | } |