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.HiddenDangerListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.HiddenDangerListVo; import com.ruoyi.system.vo.HiddenDangerVo; import com.ruoyi.system.vo.ProblemVo; import com.ruoyi.system.vo.ProjectVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.var; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.parsing.Problem; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping("/project") @Api(tags = "项目信息") public class ProjectController { @Autowired private ProjectService projectService; @Autowired private DeviceUsageService deviceUsageService; @Autowired private ProjectInfoService projectInfoService; @Autowired private TaskService taskService; @Autowired private RecordService recordService; @ApiOperation(value = "获取项目详情",response = Project.class) @GetMapping("/getProjectDetail/{id}") public R getStoryDetail(@PathVariable Integer id) { ProjectVo projectVo = new ProjectVo(); Project project = projectService.getById(id); BeanUtils.copyProperties(project,projectVo); List properties = deviceUsageService.getDeviceUsageList(id); projectVo.setProperties( properties); ProjectInfo projectInfo = projectInfoService.getOne(new LambdaUpdateWrapper().eq(ProjectInfo::getProjectId, id)); if(projectInfo!=null){ projectVo.setProgress(projectInfo.getProgress()); } Task task = taskService.getOne(new LambdaUpdateWrapper().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 getProjectHiddenDangerCount(@PathVariable Integer id) { HiddenDangerVo hiddenDangerVo = new HiddenDangerVo(); List list = taskService.list(new LambdaQueryWrapper().eq(Task::getProjectId, id)); if(!list.isEmpty()){ List taskIds = list.stream().map(Task::getId).collect(Collectors.toList()); // 0是一级隐患 List records = recordService.list(new LambdaQueryWrapper().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> getHiddenDangerList(@RequestBody @Valid HiddenDangerListQuery query) { List tasks = taskService.list(new LambdaQueryWrapper().eq(Task::getProjectId, query.getProjectId())); if(tasks.isEmpty()){ return R.ok(new Page<>()); } List taskIds = tasks.stream().map(Task::getId).collect(Collectors.toList()); Page page = new Page<>(query.getPageNum(), query.getPageSize()); List list = recordService.getHiddenDangerList(page,query,taskIds); page.setRecords(list); return R.ok(page); } @ApiOperation(value = "编辑隐患责任人") @PostMapping("/editHiddenDangerResponsiblePerson") public R 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); } }