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 io.swagger.models.auth.In; import lombok.var; 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> projectList(@RequestBody EntrustListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.projectList(page, query); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "项目列表-报告模板列表", response = ReportTemplate.class) @GetMapping("/projectReport") public R> projectReport(Integer id, Integer type) { Client client = clientService.getById(id); ClientParam clientParam = clientParamService.lambdaQuery().eq(ClientParam::getClientId, client.getId()) .last("limit 1") .one(); List 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 list = reportTemplateService.lambdaQuery() .in(ReportTemplate::getId, templateIds).list(); return R.ok(list); } @ApiOperation(value = "项目列表-报告列表", response = EntrustProjectReportVo.class) @PostMapping("/projectReport") public R> projectReport(@RequestBody ProjectReportListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.projectReport(page, query); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "获取设备列表", response = EntrustDeviceListVo.class) @PostMapping("/deviceList") public R> deviceList(@RequestBody @Valid EntrustDeviceListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.deviceList(page, query); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "获取重大隐患列表", response = DeviceListVo.class) @PostMapping("/errorList") public R> errorList(@RequestBody @Valid ErrorListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.errorList(page, query); for (ErrorListVo errorListVo : list) { List recordFileIds = recordImageService.lambdaQuery() .eq(RecordImage::getRecordId, errorListVo.getId()).list() .stream().map(RecordImage::getUserFileId).collect(Collectors.toList()); if (!recordFileIds.isEmpty()) { List 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> safetyErrorList(@RequestBody @Valid ErrorListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.safetyErrorList(page, query); for (ErrorListVo errorListVo : list) { List recordFileIds = recordImageService.lambdaQuery() .eq(RecordImage::getRecordId, errorListVo.getId()).list() .stream().map(RecordImage::getUserFileId).collect(Collectors.toList()); if (!recordFileIds.isEmpty()) { List 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> deviceList(@RequestBody @Valid ErrorListQuery query) { Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = deviceUsageService.deviceErrorList(page, query); for (ErrorListVo errorListVo : list) { List recordFileIds = recordImageService.lambdaQuery() .eq(RecordImage::getRecordId, errorListVo.getId()).list() .stream().map(RecordImage::getUserFileId).collect(Collectors.toList()); if (!recordFileIds.isEmpty()) { List 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 = "获取隐患详情") @GetMapping("/getHiddenDangerDetail/{problemId}") public R getHiddenDangerDetail(@PathVariable Integer problemId) { var record = recordService.getHiddenDangerDetail(problemId); return R.ok(record); } }