From 5371db8381f2d36ed6d628e7d9bd0dc96b547441 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期一, 26 一月 2026 15:50:01 +0800
Subject: [PATCH] 大屏项目接口
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java | 89 +++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 87 insertions(+), 2 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 993ea13..c8ac7ec 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,11 +15,12 @@
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;
@@ -62,6 +67,9 @@
@Autowired
private ScreenAccountService screenAccountService;
+ @Autowired
+ private ProjectProgressService projectProgressService;
+
@ApiOperation(value = "获取项目/委托方列表",response = LoginNameVo.class)
@GetMapping("/getLoginNameVoList")
@@ -81,6 +89,38 @@
}
+
+ @ApiOperation(value = "获取项目最新进度",response = ProjectProgress.class)
+ @GetMapping("/getProjectProgress/{projectId}")
+ public R<ProjectProgress> getProjectProgress(@PathVariable Integer projectId) {
+ ProjectProgress projectProgress = projectProgressService.getOne(new LambdaQueryWrapper<ProjectProgress>().eq(ProjectProgress::getProjectId, projectId).eq(ProjectProgress::getDeleted,0).orderByDesc(ProjectProgress::getTime).last("limit 1"));
+ return R.ok(projectProgress);
+ }
+
+
+ @ApiOperation(value = "获取项目进度历史列表",response = ProjectProgress.class)
+ @PostMapping("/getProjectProgressList")
+ public R<Page<ProjectProgress>> getProjectProgressList(@Valid @RequestBody ProjectProgressQuery query) {
+ LambdaQueryWrapper<ProjectProgress> wrapper = new LambdaQueryWrapper<ProjectProgress>().eq(ProjectProgress::getProjectId, query.getProjectId()).eq(ProjectProgress::getDeleted, 0);
+ if(query.getContent()!=null && !query.getContent().isEmpty()){
+ wrapper.like(ProjectProgress::getDetail, query.getContent());
+ }
+ if(query.getStartTime()!=null && !query.getStartTime().isEmpty()){
+ wrapper.ge(ProjectProgress::getTime, query.getStartTime());
+ }
+ if(query.getEndTime()!=null && !query.getEndTime().isEmpty()){
+ wrapper.le(ProjectProgress::getTime, query.getEndTime());
+ }
+
+ wrapper.orderByDesc(ProjectProgress::getTime);
+ Page<ProjectProgress> page = projectProgressService.page(new Page<>(query.getPageNum(), query.getPageSize()),wrapper);
+ return R.ok(page);
+ }
+ @ApiOperation(value = "获取项目进度详情",response = ProjectProgress.class)
+ @GetMapping("/getProjectProgressDetail/{id}")
+ public R<ProjectProgress> getProjectProgressDetail(@PathVariable Integer id) {
+ return R.ok(projectProgressService.getById(id));
+ }
@ApiOperation(value = "获取项目详情",response = Project.class)
@@ -103,6 +143,10 @@
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);
}
@@ -355,4 +399,45 @@
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