liujie
2026-01-22 dea26c4551583250a43566a2cef6c0ad7580b4f1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
@@ -5,6 +5,7 @@
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.enums.DeviceType;
import com.ruoyi.system.model.*;
import com.ruoyi.system.model.Record;
import com.ruoyi.system.query.*;
@@ -21,6 +22,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -60,6 +62,14 @@
    @Autowired
    private PlanService planService;
    @ApiOperation(value = "获取项目列表",response = Project.class)
    @GetMapping("/getProjectList")
    public R<List<Project>> getProjectList(@RequestParam Integer clientId) {
        List<Project> list = projectService.list(new LambdaQueryWrapper<Project>().eq(Project::getDeleted, false).eq(Project::getClientId, clientId).orderByDesc(Project::getCreateTime));
        return R.ok(list);
    }
@@ -270,4 +280,55 @@
        return R.ok(list);
    }
    @ApiOperation(value = "获取项目重大风险源详情")
    @GetMapping("/getProjectDangerousSourceDetail/{id}")
    public R<?> getProjectDangerousSourceDetail(@PathVariable Integer id) {
        ProjectInfo projectInfo = projectInfoService.getById(id);
        return R.ok(projectInfo);
    }
    @ApiOperation(value = "设备类型")
    @GetMapping("/deviceTypes")
    public R<?> deviceTypeOptions(@RequestParam(value = "title", required = false) String title) {
        return R.ok(SelectOptionVo.buildOptions(title, DeviceType.values()));
    }
    @ApiOperation(value = "各分项隐患趋势")
    @GetMapping("/getProjectHiddenDangerTrend")
    public R<List<ProjectHiddenDangerTrendVo>> getProjectHiddenDangerTrend(@RequestParam Integer projectId,@RequestParam(value = "desc", required = true) Boolean desc,@RequestParam(value = "type", required = true)Integer type) {
        List<ProjectHiddenDangerTrendVo> list = projectInfoService.getProjectHiddenDangerTrend(projectId);
        if(type==1){
            if(desc){
                list = list.stream().sorted(Comparator.comparingInt(ProjectHiddenDangerTrendVo::getThisMonth).reversed()).toList();
            }else {
                list = list.stream().sorted(Comparator.comparingInt(ProjectHiddenDangerTrendVo::getThisMonth)).toList();
            }
        }else {
            if(desc){
                list = list.stream().sorted(Comparator.comparingDouble(ProjectHiddenDangerTrendVo::getRate).reversed()).toList();
            }else {
                list = list.stream().sorted(Comparator.comparingDouble(ProjectHiddenDangerTrendVo::getRate)).toList();
            }
        }
        return R.ok(list);
    }
    @ApiOperation(value = "各分项隐患趋势列表")
    @PostMapping("/getProjectHiddenDangerTrendList")
    public R<List<ProjectHiddenDangerList>> getProjectHiddenDangerTrendList(@RequestBody @Valid ProjectHiddenDangerTrendListQuery query) {
        List<ProjectHiddenDangerList> list = projectInfoService.getProjectHiddenDangerTrendList(query);
        return  R.ok(list);
    }
    @ApiOperation(value = "大屏风险趋势")
    @PostMapping("/getProjectDangerousTrend")
    public R<List<ProjectDangerousTrendVo>> getProjectDangerousTrend(@RequestBody @Valid ProjectDangerousTrendQuery query) {
        List<ProjectDangerousTrendVo> list = projectInfoService.getProjectDangerousTrend(query);
        return R.ok(list);
    }
}