From 01fb223437289f8d81d6bc9645844947669c0721 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期六, 24 一月 2026 18:32:32 +0800
Subject: [PATCH] fix:大屏接口联调修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java |  127 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 112 insertions(+), 15 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
index 34c6365..42e796b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
@@ -1,8 +1,12 @@
 package com.ruoyi.web.controller.api;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 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.icbc.hsm.utils.StringUtil;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.system.dto.EditHiddenDangerResponsiblePersonDto;
 import com.ruoyi.system.enums.DeviceType;
@@ -11,20 +15,18 @@
 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.annotations.*;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.parsing.Problem;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 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.*;
 import java.util.stream.Collectors;
 
 import static java.util.stream.Collectors.groupingBy;
@@ -59,9 +61,30 @@
     @Autowired
     private PositionService positionService;
 
-
     @Autowired
     private PlanService planService;
+
+    @Autowired
+    private ScreenAccountService screenAccountService;
+
+
+    @ApiOperation(value = "获取项目/委托方列表",response = LoginNameVo.class)
+    @GetMapping("/getLoginNameVoList")
+    public R<List<LoginNameVo>> getProjectList(@RequestParam Integer userId) {
+        ScreenAccount screenAccount = screenAccountService.getById(userId);
+        String clientProjectIds = screenAccount.getClientProjectIds();
+        if(screenAccount.getType()==1){
+            // 委托方
+            List<LoginNameVo> list = screenAccountService.getLoginClient(clientProjectIds);
+            return R.ok(list);
+        }else {
+            // 项目
+            List<LoginNameVo> list = screenAccountService.getLoginProject(clientProjectIds);
+            return R.ok(list);
+
+        }
+
+    }
 
 
 
@@ -84,6 +107,12 @@
         if(task!=null){
             projectVo.setCheckTime(task.getUpdateTime());
         }
+        List<DeviceCountVo> list = deviceUsageService.getProjectDeviceCount(id);
+        list.forEach(item->{
+            DeviceType value = DeviceType.values()[item.getType()];
+            item.setName(value.getDesc());
+        });
+        projectVo.setDeviceCountVos(list);
         return R.ok(projectVo);
     }
 
@@ -143,10 +172,10 @@
     }
 
 
-    @ApiOperation(value = "获取隐患详情")
-    @GetMapping("/getHiddenDangerDetail/{problemId}")
-    public R<?> getHiddenDangerDetail(@PathVariable Integer problemId) {
-        var record = recordService.getHiddenDangerDetail(problemId);
+    @ApiOperation(value = "获取隐患详情",response = ProblemVo.class)
+    @GetMapping("/getHiddenDangerDetail/{id}")
+    public R<ProblemVo> getHiddenDangerDetail(@PathVariable Integer id) {
+        ProblemVo record = recordService.getHiddenDangerDetail(id);
         return R.ok(record);
     }
 
@@ -162,7 +191,7 @@
     }
 
 
-    @ApiOperation(value = "获取设备详情检查列表",response = DeviceDetailCheckListVo.class)
+    @ApiOperation(value = "获取检查计划列表",response = DeviceDetailCheckListVo.class)
     @PostMapping("/getDeviceDetailCheckList")
     public R<Page<DeviceDetailCheckListVo>> getDeviceDetailCheckList(@RequestBody DeviceDetailCheckListQuery query) {
         Page<DeviceDetailCheckListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
@@ -172,20 +201,31 @@
     }
 
 
-    @ApiOperation(value = "获取设备详情检查资料列表")
+    @ApiOperation(value = "获取检查资料列表")
     @GetMapping("/getDeviceDetailCheckPlanList")
     public R<List<Check>> getDeviceDetailCheckPlanList(@RequestParam Integer planId) {
         List<Check> list = checkService.list(new LambdaQueryWrapper<Check>().eq(Check::getPlanId,planId).orderByDesc(Check::getTime));
+        if(!list.isEmpty()){
+            List<Integer> planIds = list.stream().map(Check::getPlanId).toList();
+            List<Plan> plans = planService.listByIds(planIds);
+
+            List<Integer> projectIds = list.stream().map(Check::getProjectId).toList();
+            List<Project> projects = projectService.listByIds(projectIds);
+            list.forEach(check -> {
+                check.setPlanName(Objects.requireNonNull(plans.stream().filter(plan -> plan.getId().equals(check.getPlanId())).findFirst().orElse(null)).getName());
+                check.setProjectName(Objects.requireNonNull(projects.stream().filter(project -> project.getId().equals(check.getProjectId())).findFirst().orElse(null)).getName());
+            });
+        }
         return R.ok(list);
     }
 
-    @ApiOperation(value = "获取设备详情检查资料详情")
+
+    @ApiOperation(value = "获取检查资料详情")
     @GetMapping("/getDeviceDetailCheckPlanDetail")
     public R<Check> getDeviceDetailCheckPlanDetail(@RequestParam Integer id) {
         Check check = checkService.getDeviceDetailCheckPlanDetail(id);
         return R.ok(check);
     }
-
 
 
     @ApiOperation(value = "获取大屏人员在岗信息")
@@ -226,6 +266,7 @@
         List<Plan> list = planService.list(new LambdaQueryWrapper<Plan>().eq(Plan::getDeleted, false));
         return R.ok(list);
     }
+
 
     @ApiOperation(value = "获取人员在岗列表",response = ProjectPersonOnDutyListVo.class)
     @PostMapping("/getProjectOnDutyList")
@@ -272,6 +313,13 @@
         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) {
@@ -308,4 +356,53 @@
         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);
+    }
+
+    @ApiOperation(value = "获取项目列表")
+    @GetMapping("/list")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "clientId", value = "委托方ID", dataType = "int", paramType = "query"),
+            @ApiImplicitParam(name = "projectName", value = "项目名称", dataType = "string", paramType = "query"),
+            @ApiImplicitParam(name = "startDate", value = "开始日期", dataType = "date", paramType = "query"),
+            @ApiImplicitParam(name = "endDate", value = "结束日期", dataType = "date", paramType = "query"),
+            @ApiImplicitParam(name = "projectCategory", value = "项目类型 ongoing-在建工程,fixed-固定资产 ", dataType = "string", paramType = "query")
+    })
+    public R<List<Project>> getList(@RequestParam("clientId") Integer clientId, String projectName,
+                                    @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
+                                    @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate,
+                                    @RequestParam("projectCategory") String projectCategory) {
+        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<Project>().eq(Project::getDeleted, false);
+        if (clientId != null) {
+            queryWrapper.eq(Project::getClientId, clientId);
+        }
+        if (projectName != null && !projectName.isEmpty()) {
+            queryWrapper.like(Project::getName, projectName);
+        }
+        if (Objects.isNull(startDate)) {
+            // 获取本月日期
+            Date date = new Date();
+            startDate = DateUtil.beginOfMonth(date);
+        }
+        Date finalStartDate = startDate;
+        queryWrapper.and(wrapper -> wrapper
+                .eq(Project::getStatus, 1)  // 在建项目
+                .or(w -> w
+                        .eq(Project::getStatus, 2)  // 已完成项目
+                        .ge(Project::getSuccessTime, finalStartDate)  // 完成时间 >= 开始日期// 完成时间 <= 结束日期
+                ));
+        if ("ongoing".equals(projectCategory)) {
+            queryWrapper.ne(Project::getType, 2);
+        } else if ("fixed".equals(projectCategory)) {
+            queryWrapper.eq(Project::getType, 2);
+        }
+        List<Project> list = projectService.list(queryWrapper);
+        return R.ok(list);
+
+    }
 }

--
Gitblit v1.7.1