liujie
2026-01-22 bb7ce2c17f6541c8b21fb63b5aa4221433f2f974
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java
@@ -21,10 +21,7 @@
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,16 +56,29 @@
    @Autowired
    private PositionService positionService;
    @Autowired
    private PlanService planService;
    @Autowired
    private ScreenAccountService screenAccountService;
    @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);
    @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);
        }
    }
@@ -92,6 +102,8 @@
        if(task!=null){
            projectVo.setCheckTime(task.getUpdateTime());
        }
        List<DeviceCountVo> list = deviceUsageService.getProjectDeviceCount(id);
        projectVo.setDeviceCountVos(list);
        return R.ok(projectVo);
    }
@@ -170,7 +182,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());
@@ -180,14 +192,25 @@
    }
    @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);