From f94782b7302f761799c1a0fbc155bed2d4dc504f Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 15 一月 2026 18:22:43 +0800
Subject: [PATCH] 大屏项目接口
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java | 11 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java | 21 ++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java | 17 +++
ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java | 51 ++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java | 26 +++++
ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml | 19 +++
ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java | 17 +++
ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java | 35 +++++++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java | 9 +
ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java | 29 +++++
ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml | 25 +++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java | 16 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java | 6 +
ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java | 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java | 3
15 files changed, 285 insertions(+), 4 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
index 5a86225..1791d8d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
@@ -126,6 +126,9 @@
}
+
+
+
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 61d0f7b..8860bb0 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
@@ -7,12 +7,10 @@
import com.ruoyi.system.dto.EditHiddenDangerResponsiblePersonDto;
import com.ruoyi.system.model.*;
import com.ruoyi.system.model.Record;
+import com.ruoyi.system.query.DeviceListQuery;
import com.ruoyi.system.query.HiddenDangerListQuery;
import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.HiddenDangerListVo;
-import com.ruoyi.system.vo.HiddenDangerVo;
-import com.ruoyi.system.vo.ProblemVo;
-import com.ruoyi.system.vo.ProjectVo;
+import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.var;
@@ -126,4 +124,14 @@
return R.ok(record);
}
+
+
+ @ApiOperation(value = "获取设备列表",response = DeviceListVo.class)
+ @PostMapping("/getDeviceList")
+ public R<Page<DeviceListVo>> getDeviceList(@RequestBody @Valid DeviceListQuery query) {
+ Page<DeviceListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
+ List<DeviceListVo> list = deviceUsageService.getDeviceList(page,query);
+ page.setRecords(list);
+ return R.ok(page);
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
index 9a7bbc2..2393b8a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java
@@ -2,9 +2,14 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.system.model.DeviceUsage;
+import com.ruoyi.system.model.Record;
+import com.ruoyi.system.query.DeviceListQuery;
+import com.ruoyi.system.vo.DeviceListVo;
import org.apache.ibatis.annotations.Param;
+import java.time.LocalDateTime;
import java.util.List;
/**
@@ -19,4 +24,8 @@
List<String> getDeviceUsageList(@Param("id") Integer id);
+ List<DeviceListVo> getDeviceList(@Param("page") Page<DeviceListVo> page, @Param("query") DeviceListQuery query);
+
+
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java
new file mode 100644
index 0000000..8ef8e5f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.UserFile;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-15
+ */
+public interface UserFileMapper extends BaseMapper<UserFile> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java
new file mode 100644
index 0000000..72d892e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java
@@ -0,0 +1,51 @@
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-15
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("user_file")
+public class UserFile extends Model<UserFile> {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ @TableField("create_time")
+ private Date createTime;
+ private Boolean deleted;
+ private String name;
+ @TableField("update_time")
+ private Date updateTime;
+ @TableField("content_type")
+ private String contentType;
+ private String extension;
+ @TableField("origin_file_name")
+ private String originFileName;
+ private Long size;
+ @TableField("creator_id")
+ private Integer creatorId;
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java
new file mode 100644
index 0000000..9ba58bf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java
@@ -0,0 +1,29 @@
+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("大屏设备列表查询query")
+public class DeviceListQuery extends BasePage {
+
+ @ApiModelProperty("项目id")
+ @NotNull(message = "项目id不能为空")
+ private Integer projectId;
+
+ @ApiModelProperty("设备类型")
+ private Integer type;
+
+ @ApiModelProperty("开始时间")
+ private String startTime;
+
+ @ApiModelProperty("结束时间")
+ private String endTime;
+
+ @ApiModelProperty("内容")
+ private String content;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
index 32a44e0..0e0f7e0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java
@@ -1,9 +1,13 @@
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.DeviceUsage;
+import com.ruoyi.system.query.DeviceListQuery;
+import com.ruoyi.system.vo.DeviceListVo;
+import javax.validation.Valid;
import java.util.List;
/**
@@ -18,4 +22,6 @@
List<String> getDeviceUsageList(Integer id);
+ List<DeviceListVo> getDeviceList(Page<DeviceListVo> page, @Valid DeviceListQuery query);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java
new file mode 100644
index 0000000..17b6a26
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.UserFile;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-15
+ */
+public interface UserFileService extends IService<UserFile> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
index 2cb261a..dafccf6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java
@@ -1,13 +1,22 @@
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.DeviceUsageMapper;
import com.ruoyi.system.model.DeviceUsage;
+import com.ruoyi.system.model.Record;
+import com.ruoyi.system.query.DeviceListQuery;
import com.ruoyi.system.service.DeviceUsageService;
+import com.ruoyi.system.vo.DeviceListVo;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.YearMonth;
import java.util.List;
+import java.util.stream.Collectors;
/**
* <p>
@@ -24,4 +33,21 @@
public List<String> getDeviceUsageList(Integer id) {
return this.baseMapper.getDeviceUsageList(id);
}
+
+ @Override
+ public List<DeviceListVo> getDeviceList(Page<DeviceListVo> page, DeviceListQuery query) {
+ List<DeviceListVo> deviceList = this.baseMapper.getDeviceList(page, query);
+ for (DeviceListVo deviceListVo : deviceList) {
+ LocalDateTime checkTime = deviceListVo.getCheckTime();
+ // 判断checkTime是否是本月的时间
+ if (checkTime != null && YearMonth.from(checkTime).equals(YearMonth.now())) {
+ deviceListVo.setCheckResult("已检查");
+ }else {
+ deviceListVo.setCheckResult("未检查");
+ }
+ }
+ return deviceList;
+ }
+
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
index 891e9b4..278922e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java
@@ -8,10 +8,12 @@
import com.ruoyi.system.mapper.RecordMapper;
import com.ruoyi.system.model.Record;
import com.ruoyi.system.model.RecordImage;
+import com.ruoyi.system.model.UserFile;
import com.ruoyi.system.query.HiddenDangerListQuery;
import com.ruoyi.system.service.RecordImageService;
import com.ruoyi.system.service.RecordService;
import com.ruoyi.system.service.TaskService;
+import com.ruoyi.system.service.UserFileService;
import com.ruoyi.system.vo.HiddenDangerListVo;
import com.ruoyi.system.vo.ProblemVo;
import java.util.Map;
@@ -37,6 +39,8 @@
@Autowired
private RecordImageService recordImageService;
+ @Autowired
+ private UserFileService userFileService;
@@ -52,6 +56,13 @@
list.forEach(vo -> {
List<RecordImage> collect = recordImages.stream().filter(recordImage -> recordImage.getRecordId().equals(vo.getId())).collect(Collectors.toList());
vo.setFileNum(collect.size());
+ if(!collect.isEmpty()){
+ List<Integer> fileIds = collect.stream().map(RecordImage::getUserFileId).collect(Collectors.toList());
+ List<UserFile> userFiles = userFileService.listByIds(fileIds);
+ vo.setUserFiles(userFiles);
+
+ }
+
});
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java
new file mode 100644
index 0000000..4d05c2b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.UserFileMapper;
+import com.ruoyi.system.model.UserFile;
+import com.ruoyi.system.service.UserFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2026-01-15
+ */
+@Service
+public class UserFileServiceImpl extends ServiceImpl<UserFileMapper, UserFile> implements UserFileService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java
new file mode 100644
index 0000000..c120c83
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java
@@ -0,0 +1,35 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("大屏设备列表信息Vo")
+public class DeviceListVo {
+
+ private Integer id;
+
+ @ApiModelProperty("设备类型")
+ private Integer type;
+
+ @ApiModelProperty("设备编号")
+ private String name;
+
+ @ApiModelProperty("设备出厂日期")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("单位信息")
+ private String properties;
+
+ @ApiModelProperty("检查情况")
+ private String checkResult;
+
+ @ApiModelProperty("检查时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+ private LocalDateTime checkTime;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java
index bd1f71c..f9999d0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java
@@ -1,11 +1,13 @@
package com.ruoyi.system.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.system.model.UserFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
+import java.util.List;
@Data
@ApiModel("隐患列表")
@@ -45,6 +47,8 @@
@ApiModelProperty("图片数量")
private Integer fileNum;
+ @ApiModelProperty("图片信息")
+ private List<UserFile> userFiles;
@ApiModelProperty("检查时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
diff --git a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
index 05fcc9f..33c49a1 100644
--- a/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml
@@ -20,5 +20,30 @@
left join device t2 on t1.device_id = t2.id
where t1.project_id =#{id}
</select>
+ <select id="getDeviceList" resultType="com.ruoyi.system.vo.DeviceListVo">
+
+ select t1.id, t1.name, t1.create_time, t1.properties, t1.type, latest.record_time as checkTime
+ from device t1
+ left join device_usage t2 on t1.id = t2.device_id
+ left join (
+ select device_id, max(create_time) as record_time
+ from record
+ group by device_id
+ ) latest on t1.id = latest.device_id
+ where t2.project_id = #{query.projectId} and t2.deleted = 0
+ <if test="query.type != null">
+ and t1.type = #{query.type}
+ </if>
+ <if test="query.content!= null and query.content!=''">
+ and t1.name like CONCAT('%', #{query.content}, '%')
+ </if>
+ <if test="query.startTime != null and query.startTime != ''">
+ and latest.record_time >= #{query.startTime}
+ </if>
+ <if test="query.endTime != null and query.endTime != ''">
+ and #{query.endTime} >=latest.record_time
+ </if>
+ order by latest.record_time desc
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml b/ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml
new file mode 100644
index 0000000..743677e
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml
@@ -0,0 +1,19 @@
+<?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.UserFileMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.system.model.UserFile">
+ <id column="id" property="id" />
+ <result column="create_time" property="createTime" />
+ <result column="deleted" property="deleted" />
+ <result column="name" property="name" />
+ <result column="update_time" property="updateTime" />
+ <result column="content_type" property="contentType" />
+ <result column="extension" property="extension" />
+ <result column="origin_file_name" property="originFileName" />
+ <result column="size" property="size" />
+ <result column="creator_id" property="creatorId" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.7.1