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 | 35 +++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectProgressServiceImpl.java | 39 +++++++
ruoyi-system/src/main/resources/mapper/system/ProjectProgressMapper.xml | 32 ++++++
ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectProgressQuery.java | 25 +++++
ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectProgress.java | 67 +++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectProgressMapper.java | 23 ++++
ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectProgressService.java | 22 ++++
7 files changed, 243 insertions(+), 0 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 42e796b..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
@@ -67,6 +67,9 @@
@Autowired
private ScreenAccountService screenAccountService;
+ @Autowired
+ private ProjectProgressService projectProgressService;
+
@ApiOperation(value = "获取项目/委托方列表",response = LoginNameVo.class)
@GetMapping("/getLoginNameVoList")
@@ -87,6 +90,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)
@GetMapping("/getProjectDetail/{id}")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectProgressMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectProgressMapper.java
new file mode 100644
index 0000000..a0c52d8
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProjectProgressMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.system.model.ProjectProgress;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 项目进度 Mapper 接口
+ * </p>
+ *
+ * @author administratorProjectProgressMapper.xml
+ * @since 2026-01-26
+ */
+public interface ProjectProgressMapper extends BaseMapper<ProjectProgress> {
+
+ Page<ProjectProgress> pageList(@Param("page") Page<ProjectProgress> page, @Param("name") String name, @Param("clientId") Integer clientId, @Param("sTime") String sTime, @Param("eTime") String eTime);
+
+ ProjectProgress detail(@Param("id") Integer id);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectProgress.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectProgress.java
new file mode 100644
index 0000000..26d1bb1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/ProjectProgress.java
@@ -0,0 +1,67 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 项目进度
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("project_progress")
+public class ProjectProgress extends Model<ProjectProgress> {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("client_id")
+ @NotNull(message = "委托方ID不能为空")
+ private Integer clientId;
+ @TableField("project_id")
+ @NotNull(message = "项目ID不能为空")
+ private Integer projectId;
+ @ApiModelProperty("进度说明")
+ @NotBlank(message = "进度说明不能为空")
+ private String detail;
+ @TableField("time")
+ @ApiModelProperty("进度更新时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ @NotNull(message = "进度更新时间不能为空")
+ private Date time;
+ @ApiModelProperty("进度url链接")
+ @NotBlank(message = "进度url链接不能为空")
+ private String url;
+ @TableField("create_time")
+ private Date createTime;
+
+ private Integer deleted;
+
+ @TableField(exist = false)
+ @ApiModelProperty("委托方名称")
+ private String clientName;
+
+ @TableField(exist = false)
+ @ApiModelProperty("项目名称")
+ private String projectName;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectProgressQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectProgressQuery.java
new file mode 100644
index 0000000..5e5c459
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ProjectProgressQuery.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel(value = "项目进度查询参数")
+public class ProjectProgressQuery extends BasePage {
+ @ApiModelProperty(value = "内容")
+ private String content;
+
+ @ApiModelProperty(value = "开始时间")
+ private String startTime;
+
+ @ApiModelProperty(value = "结束时间")
+ private String endTime;
+
+ @ApiModelProperty(value = "项目id")
+ @NotNull(message = "项目id不能为空")
+ private Integer projectId;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectProgressService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectProgressService.java
new file mode 100644
index 0000000..a497d34
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ProjectProgressService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.service;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.ProjectProgress;
+
+/**
+ * <p>
+ * 项目进度 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-26
+ */
+public interface ProjectProgressService extends IService<ProjectProgress> {
+
+ Page<ProjectProgress> pageList(Page<ProjectProgress> page, String name, Integer clientId, String time);
+
+ ProjectProgress detail(Integer id);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectProgressServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectProgressServiceImpl.java
new file mode 100644
index 0000000..ecb0ff4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProjectProgressServiceImpl.java
@@ -0,0 +1,39 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.ProjectProgressMapper;
+import com.ruoyi.system.model.ProjectProgress;
+import com.ruoyi.system.service.ProjectProgressService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 项目进度 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-26
+ */
+@Service
+public class ProjectProgressServiceImpl extends ServiceImpl<ProjectProgressMapper, ProjectProgress> implements ProjectProgressService {
+
+ @Override
+ public Page<ProjectProgress> pageList(Page<ProjectProgress> page, String name, Integer clientId, String time) {
+ String sTime = null;
+ String eTime = null;
+ if(time!=null && !time.isEmpty()){
+ String[] times = time.split(" - ");
+ sTime = times[0] + " 00:00:00";
+ eTime = times[1] + " 23:59:59";
+
+ }
+ return this.baseMapper.pageList(page,name,clientId,sTime,eTime);
+ }
+
+ @Override
+ public ProjectProgress detail(Integer id) {
+ return this.baseMapper.detail(id);
+ }
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProjectProgressMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProjectProgressMapper.xml
new file mode 100644
index 0000000..a11cc08
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/ProjectProgressMapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.ProjectProgressMapper">
+
+
+ <select id="pageList" resultType="com.ruoyi.system.model.ProjectProgress">
+ select t1.id,t1.detail,t1.time,t2.name as clientName,t3.name as projectName
+ from project_progress t1
+ left join client t2 on t1.client_id = t2.id
+ left join project t3 on t1.project_id = t3.id
+ where t1.deleted= 0
+ <if test="name != null and name != ''">
+ and t3.name like concat('%',#{name},'%')
+ </if>
+ <if test="clientId != null">
+ and t1.client_id = #{clientId}
+ </if>
+ <if test="sTime != null and sTime != ''">
+ and t1.time between #{sTime} and #{eTime}
+ </if>
+ order by t1.time desc
+ </select>
+ <select id="detail" resultType="com.ruoyi.system.model.ProjectProgress">
+ select t1.id,t1.detail,t1.time,t2.name as clientName,t3.name as projectName
+ from project_progress t1
+ left join client t2 on t1.client_id = t2.id
+ left join project t3 on t1.project_id = t3.id
+ where t1.deleted= 0 and t1.id = #{id}
+
+
+ </select>
+</mapper>
--
Gitblit v1.7.1