liujie
2026-01-15 f94782b7302f761799c1a0fbc155bed2d4dc504f
大屏项目接口
7个文件已添加
8个文件已修改
289 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/ProjectController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DeviceUsageMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/DeviceUsageService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DeviceUsageServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RecordServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/vo/HiddenDangerListVo.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/DeviceUsageMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DashboardStatisticsController.java
@@ -126,6 +126,9 @@
    }
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);
    }
}
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);
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/UserFileMapper.java
New file
@@ -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> {
}
ruoyi-system/src/main/java/com/ruoyi/system/model/UserFile.java
New file
@@ -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;
}
ruoyi-system/src/main/java/com/ruoyi/system/query/DeviceListQuery.java
New file
@@ -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;
}
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);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/UserFileService.java
New file
@@ -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> {
}
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;
    }
}
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);
                }
            });
        }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserFileServiceImpl.java
New file
@@ -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 {
}
ruoyi-system/src/main/java/com/ruoyi/system/vo/DeviceListVo.java
New file
@@ -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;
}
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")
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>
ruoyi-system/src/main/resources/mapper/system/UserFileMapper.xml
New file
@@ -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>